记录一下给自己的 openwrt 整的简易每日备份

614次阅读
没有评论
FILENAME=n100wrt-$(date +%a | tr A-Z a-z)
echo START: $(date) >/root/localbackup/$FILENAME.log
cat /root/localbackup/run-backup.sh >> /root/localbackup/$FILENAME.log
tar -cvpzf /root/localbackup/$FILENAME.tar.gz --exclude=/root/localbackup --exclude=/proc --exclude=/mnt --exclude=/lost+found --exclude=/sys / >>/root/localbackup/$FILENAME.log 2>&1
rsync -avL /root/localbackup/$FILENAME.tar.gz homebackup@192.168.100.10:~/n100wrt >>/root/localbackup/$FILENAME.log 2>&1
echo END: $(date) >>/root/localbackup/$FILENAME.log
rsync -avL /root/localbackup/$FILENAME.log homebackup@192.168.100.10:~/n100wrt

基本作用是备份全部存储空间,附带生成带有开始时间、脚本内容、报错、以及结束时间的日志,同步到另一服务器,并且只保留最近一周的备份。逐行解释:

  1. 设置一个名为 FILENAME 的变量,变量值为 n100wrt-当前星期的英文小写简写,比如今天是星期一,变量就是 n100wrt-mon
  2. 把当前时间写入日志文件(会清除原有的文件内容)
  3. 把脚本内容追加写入到日志文件
  4. 使用 tar 压缩存储文件,排除部分目录,尤其注意排除备份文件或存储备份文件的目录。然后将报错追加写入日志文件( 2>&1 作用是将标准错误输出重定向到标准输出)
  5. 使用 rsync 同步备份文件,然后将报错追加写入日志文件。这里需要提前设置好登录凭证,以避免出现交互请求
  6. 把当前时间追加写入日志文件
  7. 使用 rsync 同步日志文件

然后在 crontab 里添加一行 5 5 * * * /root/localbackup/run-backup.sh,让它每天早上 5 点 5 分自动运行,一个简易的自动每日备份就完成了

正文完
 0