自动写日志文件linux,脚本要求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。...

要求:两类机器一共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

解析:

-d filename 如果 filename为目录,则为真 [ -d /opt/cloud/log/ ]

find  【路径】-name filename :表示直接查找该文件名的文件。

find 【路径】 -type filetype:表示通过文件类型查找文件。

文件类型包括:

f:普通文件

b:块设备文件

c:字符设备文件

d:目录

l:链接文档

s:套接字文件

find 【路径】【参数】

-atime  +n/-n   :表示访问或执行的时间大于或小于n天的文件。

-ctime  +n/-n   :表示写入,更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件。

-mtime  +n/-n   :表示写入时间大于或小于n天的文件,该参数用的最多。

-mmin   +n/-n   :表示mtime在n分钟内的文件。

-o   :或者的意思 or

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令

当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题

find ~ -name ‘*.log’ -print0 | xargs  rm -f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值