类似于日志切割,系统有个logrotate程序,可以完成归档。但现在我们要自己写一个shell脚本实现归档。 举例: 假如服务的输出日志是1.log,我要求每天归档一个,1.log第二天就变成1.log.1,第三天1.log.2, 第四天 1.log.3 一直到1.log.5。下面是我的一个参考脚本,供大家参考:
#!/bin/bash
function e_df()
{
[ -f $1 ] && rm -f $1
}
for i in `seq 5 -1 2`
do
i2=$[$i-1]
e_df /data/1.log.$i
if [ -f /data/1.log.$i2 ]
then
mv /data/1.log.$i2 /data/1.log.$i
fi
done
e_df /data/1.log.1
mv /data/1.log /data/1.log.1
0
- #! /bin/bash
- orgd=`ls -l 1.log|awk '{print $7}'`
- today=`date +%d`
- i=$[$today-$orgd]
- for i in `seq 1 5`
- do
- mv 1.log 1.log.$i
- done
0
dir=/usr/local/sbin
f=1.log
for i in `seq 1 5`
do
cp $dir/$f /tmp/$f.$i
sleep 86400
done
用的笨方法
#!/bin/bashdir=/usr/local/sbin
f=1.log
for i in `seq 1 5`
do
cp $dir/$f /tmp/$f.$i
sleep 86400
done
编辑回复