问题:
Linux定时每天备份目的文件到目标Linux服务器位置
思路:
依赖sshpass和crontab
建立.sh文件完成备份操作
定时使用contab启动此.sh文件
操作:
1.建立如下.sh文件
#!/bin/sh
#设置备份的源文件夹
backup_source=自己填充
#设置目的服务器地址
remote_username=自己填充
remote_ip=自己填充
remote_password=自己填充
remote_folder=自己填充
#创建备份的缓存文件夹backup_home
backup_home=/home/backup_home
if [ ! -d ${backup_home} ];then
mkdir ${backup_home}
if [ $? -eq 0 ]; then
echo "缓存文件夹创建成功"
else
echo "缓存文件夹创建失败"
exit 1
fi
else
echo "缓存文件夹已经存在"
fi
#压缩文件到backup_home
date=$(date +%Y%m%d)
zip -q -r ${backup_home}/${date}.zip ${backup_source}
if [ $? -eq 0 ]; then
echo "文件压缩成功"
else
echo "文件压缩失败"
exit 1
fi
#从本地复制到远程
sshpass -p ${remote_password} scp ${backup_home}/${date}.zip ${remote_username}@${remote_ip}:${remote_folder}
if [ $? -eq 0 ]; then
echo "从本地复制到远程成功"
else
echo "从本地复制到远程失败"
exit 1
fi
#删除backup_home下超过7天的zip文件
find ${backup_home} -mtime +7 -name "*.zip" -exec rm -rf {} \;
2. 在命令行敲入
crontab -e
3. 选择你自己喜欢的编辑工具
4. 在crontab设置文件中加入
0 2 * * * 刚才的sh文件地址 >> /home/backup_home/log.txt
5. 重启crontab
service cron restart