编写备份脚本
先写个执行文件备份操作的shell脚本ssd2hdd.sh:
#!/bin/sh
Now=$(date "+%Y%m%d%H%M")
tar -cvf /backup.../$Now.tar.gz /file...
先通过Now=$(date "+%Y%m%d%H%M")获取到当前年月日时分,我这里是用作备份文件名;然后通过tar压缩命令直接将需要备份的文件压缩到备份目录:/backup.../为备份文件存放目录的绝对路径,$Now.tar.gz为备份文件的文件名,/file...为需要做备份的文件目录。
编写定时任务
然后执行sudo crontab -e命令进入到定时任务编写:
我这里设置两个执行备份脚本的定时任务,分别在每天12:00和17:50,脚本路径一定要是绝对路径,设置好后保存退出。
重启下定时任务程序:sudo service cron restart
拓展
当然,我们每天这样定时备份文件会造成存储资源过度浪费,因此,可以丰富下备份脚本功能,清除一些比较时间比较长的备份文件,如下根据我的实际备份情况,每次执行备份后,我会根据文件名差(年月日时分组成的数字差)来判断出最近三次之前备份的文件,然后对最近三次备份之前的文件执行删除操作:
#!/bin/sh
cd /backup/sdb/doc
Now=$(date "+%Y%m%d%H%M")
diff=10001
tar -cvf /backup/sdb/doc/$Now.tar.gz /data
for FILE in `ls`
do
filename=${FILE%%.*}
time_diff=`expr $Now - $filename`
if [ $time_diff -gt $diff ]
then
rm ./$FILE
fi
done