例1
需求:按照xxxx-xx-xx日期格式,例2017-2-15.log,每天晚上十一点生成一个日志文件记录磁盘的使用情况,并且只保存到目前为止一个月的文件。
使用到的命令:date;df;crontab;if
#!/bin/bash
d=`date +%F` #%F输出的格式为xxxx-xx-xx
dir=/var/log/disklog
if [ ! -d $dir ] #! -d判断$dir是否不为目录
then
mkdir -p $dir
fi
df -h >$dir/$d.log
find $dir -mtime 30 -name *.log | xarge rm #查找前三十天前创建的文件并删除
[root@proxy124 shell3]# crontab -e #编辑定时任务
* 23 * * * /shell3/dish.sh >/dev/null 2>&1 #2>&1 把标准错误输出输出到标准正确输出中,标准正确输出到了/dev/null,所以标准错误自然也输出到/dev/null
date常用命令
date -d ‘-1 day’ +%F #打印昨天的日期
date +%Y%m%d %H:%M%S #打印当前的日期时间
date -d tomorrow/yestersay #打印明天或昨天的日期格式同date输出
date +%T #打印时间
date +%W #打印一年中的第几周
date +%w #阿拉伯数字打印星期几
date +%a #英文打印缩写的星期几
date +%A #英文打印全拼的星期几
date +%b #英文打印缩写的月份
date +%B #英文打印全拼的月份
更多date参数用法请man date 或date --help查找
在命令行直接用find查找删除还可用find $dir -mtime +30 -name *.log -exec rm -f {} ;