利用scp+sshpass来备份vps数据
之前写过一个利用scp来备份vps的数据,详见:http://kzpu.com/archives/3350.html,但这个有点问题,就是定时备份时,不会起作用,经过测试,用sshpass可以完美解决。
脚本如下:
#!/bin/bash
#自定义vps名字,本vps的名字
vpsname="要备份的vps_vps"
#远程vps信息
#--->IP
Remote_IP=8.8.8.8
#--->SSH Port端口
Remote_Port=12345
#--->目录
Remote_dir=/home/backup/$vpsname
#--->SSH Password密码
Remote_PW=password
#本机vps信息
#--->目录
Local_dir=/home/backup
if [ ! -d $Local_dir ] ; then
mkdir $Local_dir
fi
rm -rf $Local_dir/*
cd $Local_dir
#下面为打包代码,请自行修改
#/usr/bin/mysqldump --all-databases -uroot -p123456 | gzip > data_$vpsname.sql.gz
tar -zcPf data_$vpsname.tar.gz /var/lib/mysql/* --exclude='/var/lib/mysql/mysql*' --exclude='/var/lib/mysql/debian-5.5.flag*' --exclude='/var/lib/mysql/mysql_upgrade_info*' --exclude='/var/lib/mysql/performance_schema*' --exclude='/var/lib/mysql/test*'
tar -zcPf web_$vpsname.tar.gz /var/www/* --exclude='/var/www/default*'
tar -zcPf conf_$vpsname.tar.gz /etc/nginx/sites-enabled/* --exclude='/etc/nginx/sites-enabled/default*'
#开始上传到远程的vps目录
if [ ! -f /usr/bin/sshpass ] ; then
apt-get install -y sshpass
fi
sshpass -p $Remote_PW scp -o StrictHostKeyChecking=no -P $Remote_Port -r $Local_dir/* root@$Remote_IP:$Remote_dir
给个755的权限,然后配合定时脚本即可。