$ crontab -l
20 20 * * * /root/autobak.sh etc &> /dev/null
25 20 * * * /root/autobak.sh boot &> /dev/null
#每天20点20分和25分开始运行备份etc和boot目录
0 */2 * * * tar zcf /test/shells.tgz /test/shells &> /dev/null
#每两个小时运行备份/test/shells目录
$ cat autobak.sh
- #!/bin/sh
- #autobak.sh
- #首先切换到根目录,为了tar备份非当前目录文件时报错
- cd /
- #设置备份文件的存放目录
- X=/backup/
- #提取当前日期为年月日格式
- DATE=`/bin/date +%Y%m%d`
- #改backup目录为可写
- /bin/mount -o remount,rw ${X}
- /bin/tar -cf ${X}$1_$DATE.tar $1 > /dev/null 2>> ${X}$1_bak.log
- /bin/gzip -f ${X}$1_$DATE.tar
- #判断上个命令执行是否成功,不成功为非0值
- if [ $? -eq 0 ];then
- #若成功删除10天前并且名字为$1开头的备份文件,避免备份文件体积过大
- /usr/bin/find ${X} -mtime +10 -a -name $1_* -exec \rm {} \;
- else
- echo -e "ERROR: failure $1 $DATE backup!\n" >> ${X}$1_bak.log
- fi
- #改回为只读,避免错误操作导致备份损坏。
- /bin/mount -o remount,ro ${X}
阅读(2470) | 评论(0) | 转发(1) |