#!/bin/bash和#!/usr/bin/env bash区别
区别:#!/bin/bash是一定存在的,#!/usr/bin/env bash在不同系统上的移植性更好,因为它会从用户定义的PATH中寻找bash解释器,但是可能会不存在。
find命令及日志定时清理
以下示例删除三个目录下及其子目录30天前的日志文件
定义日志清理脚本:clean_logs.sh
#!/usr/bin/env bash
find -L /home/admin/nginx/logs/ -type f -mtime +30 -exec /bin/rm -rf "{}" \;
find -L /home/admin/yourapp/logs/ -type f -mtime +30 -exec /bin/rm -rf "{}" \;
find -L /home/admin/logs/ -type f -mtime +30 -exec /bin/rm -rf "{}" \;
将脚本拷贝到/etc/cron.daily目录下,每天定时执行
cp /tmp/clean_logs.sh /etc/cron.daily/clean_logs.sh
chmod +x /etc/cron.daily/clean_logs.sh
具体什么几点执行可以查看文件
cat /etc/crontab //查看定时时间设置
列出当前目录及其子目录中所有一般文件
# find . -type f
查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们
# find /var/log -type f -mtime +7 -ok rm {} \;
列出当前目录及其子目录下所有最近 20 天内更新过的文件
# find . -ctime -20