shell练习题4

时间:2023-03-08 22:10:07

需求如下:

系统logrotate工具,可以完成日志切割、归档。写一个shell脚本实现类似功能。

举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1,

第三天1.log.2,第四天l.log.3,一直到1.log.5

参考解答如下

  • 方法1
#!/bin/bash
# rem_file()
{
[ -f $1 ] && rm $1
} for i in $(seq 5 -1 2)
do
i2=$(($i-1))
rem_file /data/1.log.$i
if [ -f /data/1.log.$i2 ];then
mv /data/1.log.$i2 /data/1.log.$i
fi
done rem_file /data/1.log.1
mv /data/1.log /data/1.log.1 # service restart