Linux 远程备份脚本
2017-01-07 22:58:03
1、 LINUX 自动同步文件夹脚本
首先运行脚本的备份服务器需要配置SSH互信任,可以免密码登录。需要发送通知邮件的可以按照mail 这个软件包,并且最好配置SMTP服务器,不然就这么发送邮件也可以发送的出去,不过容易被收件服务器拦截
#!/bin/bash
# 定义备份目录和要发送的给管理员的文件内容
dataBackupDir=/livebos
eMailFile=$dataBackupDir/email.txt
# 定义管理员的email地址
eMail1=xxxxxxxxxx@163.com
# 定义日志文件
logFile=$dataBackupDir/livebos.log
echo “开始远程完整备份凯泰livebos的目录 …” > $eMailFile
echo " 开始时间:$(date +%Y-%m-%d-%H:%M:%S)" >> $eMailFile
#远程备份工具和参数
rsync -vzrtopg --progress --delete -e ssh root@172.16.10.221:/livebos/* /livebos/
if [ $?==0 ]
then
echo “结束时间:$(date +%Y-%m-%d-%H:%M:%S)” >> $eMailFile
echo “目录同步完成!” >> $eMailFile
else
echo “目录同步失败!!!” >> $emailFile
cat $eMailFile | mail -s “目录同步失败!!!” $eMail1
fi
echo “--------------------------------------------------------” >> $logFile
cat $eMailFile >> $logFile
2、远程备份文件夹并打包压缩
#!/bin/bash
# 定义备份目录和要发送的给管理员的文件内容
dataBackupDir=/livebos
eMailFile=$dataBackupDir/email.txt
# 定义管理员的email地址
eMail1=xxxxxxxxxx@163.com
# 定义日志文件
logFile=$dataBackupDir/livebos.log
# 定义备份的目录名和压缩文件名
Dir=livbos_$(date +%Y%m%d_%H%M%S)
GZDir=livbos_$(date +%Y%m%d_%H%M%S).tar.gz
echo “开始远程完整备份172.16.10.221 livebos的目录 …” > $eMailFile
echo " 开始时间:$(date +%Y-%m-%d-%H:%M:%S)" >> $eMailFile
#远程拷贝文件夹到定义目录名
rsync -vzrtopg --progress --delete -e ssh root@172.16.10.221:/livebos/* /livebos/backup/$Dir
#压缩定义目录名成定义文件名
tar -zcvf /livebos/backup/ G Z D i r / l i v e b o s / b a c k u p / GZDir /livebos/backup/ GZDir/livebos/backup/Dir
#删除先前拷贝的文件
rm -rf /livebos/backup/$Dir
if [ $?==0 ]
then
echo “结束时间:$(date +%Y-%m-%d-%H:%M:%S)” >> $eMailFile
echo “目录备份完成!” >> $eMailFile
echo “目标备份文件名:$GZDir” >> $eMailFile
else
echo “目录备份失败!!!” >> $emailFile
# send email
cat $eMailFile | mail -s “目录备份失败!!!” $eMail1
fi
echo “--------------------------------------------------------” >> $logFile
cat $eMailFile >> $logFile
#-ctime表示创建时间,这里表示删除创建时间为多少天之前的文件,也就是结果只保留多少天的数据
find “/livebos/backup/” -ctime +30 -type f -name “*.tar.gz” -print > deleted.txt
echo -e “delete files:\n” >> $logFile
#循环删除匹配到的文件
cat deleted.txt | while read LINE
do
rm-rf $LINE
echo$LINE>> $logFile
done
echo “--------------------------------------------------------” >> $logFile
脚本编辑好后记得赋予可执行权限,
然后crontab -e 添加计划任务,第一个脚本可以一天执行两次,第二个脚本可以三天或者一周执行一次共同组成理想的备份状态
评论(0)