shell习题-清理日志

要求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。在堡垒机批量发布,也要批量发布到crontab里面。

A类机器日志存放路径很统一,B类机器日志存放路径需要用*匹配(因为这个目录里除了日志外,还有其他文件,不能删除。匹配的时候可用*.log)

A类:/opt/cloud/log/   删除7天前的
B类: /opt/cloud/instances/  删除15天前的

要求写在一个脚本里面。不用考虑堡垒机上的操作,只需要写出shell脚本。

#!/bin/bash

dir1=/opt/cloud/instances/ 
dir2=/opt/cloud/log/

  if [ -d $dir1 ];then
      find $dir1 -type f -name "*.log" -mtime +15 |xargs rm -f
  elif [ -d $dir2 ];then
      find $dir2 -type f -mtime +7 |xargs rm -f
  fi
时间: 2024-11-04 15:25:00

shell习题-清理日志的相关文章

shell习题-处理日志

写一个脚本查找/data/log目录下,最后创建时间是3天前,后缀是*.log的文件,打包后发送至192.168.1.2服务上的/data/log下,并删除原始.log文件,仅保留打包后的文件 #!/bin/bash find /data/log -name "*.log" -mtime +3 > /tmp/file.list cd /data/log tar czvf log.tar.gz `cat /tmp/file.list|xargs` rsync -a log.tar.

linux shell习题训练

shell习题训练 求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2306 打印当前sshd的端口和进程id,处理结果: sshd Port&&pid: 22 5412 输出本机创建20000个目录所用的时间,处理结果: real 0m3.367s user 0m0.066s sys 0m1.925s 打印本机的交换分区大小,处理结果: Swap:1024M

定时删除日志文件---linux定时清理日志

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧. 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30

Shell + crontab 实现日志压缩归档

Shell + crontab 实现日志压缩归档 crontab 1 # archive the ats log file, keep 7 days. 2 */5 * * * * root /bin/sh /path/archive_atslog.sh >/dev/null 2>&1 shell 1 #!/bin/bash 2 # Author : standby 3 # Date : 2017-04-17 4 # Description : Archive the live log,

linux下清理日志的脚本

需求:由于/var分区单独划分,给的分区大小才5G,日志写满了,需要写个脚本定时清理日志文件 #!/bin/bash ##delete log script ,write by xl LOG_DIR1=/var/log LOG_DIR2=/var/spool/mail LOG_DIR3=/var/spool/mqueue ROOT_UID=0 ##Must be use root to run this script if [ "$UID" -ne "$ROOT_UID&qu

SQL SERVER 清理日志文件

代码清理: USE[master] GO ALTER DATABASE 表名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 表名 SET RECOVERY SIMPLE   --简单模式 GO USE 表名 GO DBCC SHRINKFILE (N'日志名' , 11, TRUNCATEONLY) GO USE[master] GO ALTER DATABASE 表名 SET RECOVERY FULL WITH NO_WAIT GO A

定时任务自动清理日志

log="/tmp/back.log"cleardate=date "+%Y%m%d%H%M%S"for i in find /software/* -name "catalina.out" -o -name "*.log" ! -user root;do cat /dev/null>$i;done;echo "清理日志定时任务记录: $cleardate" >>$log 原文地址:htt

清理日志

写一个清理日志的程序,把三天前的日志和为空的日志都删掉: import os,time,datetime def timestamps_to_str(timestamp=None,format='%Y-%m-%d'): #时间戳转为格式化时间 if timestamp: time_tuple = time.localtime(timestamp) result = time.strftime(format,time_tuple) else: result = time.strftime(form

清理日志的shell

shell学习之路 #!/bin/bash# clear log #变量保存目录LOG_DIR = /var/log#移到指定目录cd $LOG_DIR#清理指定文件cat /dev/null > messagescat /dev/null > wtmp echo "Logs cleaned up." exit