crontab计划执行目录备份

971阅读 0评论2011-11-12 linux_kaige
分类:

$ 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
  1. #!/bin/sh
  2. #autobak.sh
  3. #首先切换到根目录,为了tar备份非当前目录文件时报错
  4. cd /
  5. #设置备份文件的存放目录
  6. X=/backup/
  7. #提取当前日期为年月日格式
  8. DATE=`/bin/date +%Y%m%d`
  9. #改backup目录为可写
  10. /bin/mount -o remount,rw ${X}
  11. /bin/tar -cf ${X}$1_$DATE.tar $1 > /dev/null 2>> ${X}$1_bak.log
  12. /bin/gzip -f ${X}$1_$DATE.tar
  13. #判断上个命令执行是否成功,不成功为非0值
  14. if [ $? -eq 0 ];then
  15. #若成功删除10天前并且名字为$1开头的备份文件,避免备份文件体积过大
  16. /usr/bin/find ${X} -mtime +10 -a -name $1_* -exec \rm {} \;
  17. else
  18. echo -e "ERROR: failure $1 $DATE backup!\n" >> ${X}$1_bak.log
  19. fi
  20. #改回为只读,避免错误操作导致备份损坏。
  21. /bin/mount -o remount,ro ${X}
上一篇:rsyslog与logrotate配合滚动记录日志
下一篇:${ }的一些特异功能