下面的代码是我在做员工培训时写的一个演示脚本:将命令行写入crontab中后,可以实现对指定源文件进行每日备份,并且可以指定备份文件的最大保存天数,超过此设定值的备份文件会被自动删除。
#将src中设定的源文件进行打包备份,备份文件名为当前日期(yyyymmdd)
#备份前会自动删除超过保存天的备份文件
#使用前请建立好备份路径
#要备份的文件
src="/usr/jtkk/*.sh /usr/jtkk/*.txt"
#备份路径
bakdir="/usr/jtkk/backup"
#备份文件的最大保存天数
maxday=7
#判断传入的参数是否是数值
isnum()
{
if [ $# -lt 1 ]; then
return 1
fi
expr $1 + 10 2>/dev/null 1>&2
return $?
}
#备份文件名
today=`date +%Y%m%d`
#下面的for循环删除超过保存天数的文件
for file in `ls -1 $bakdir`
do
isnum $file
if [ $? -ne 0 ]; then
continue
fi
l=`expr length "$file"`
if [ $l -ne 8 ]; then
continue
fi
m=`expr $today - $file`
if [ $m -gt $maxday ]; then
rm -f $bakdir/$file
fi
done
#对源文件进行打包备份
tar -cvf $bakdir/$today $src
if [ $? -eq 0 ]; then
echo "Backup is OK!"
else
echo "Backup error!"
fi
阅读(3331) | 评论(0) | 转发(0) |