之前写过一个利用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的权限,然后配合定时脚本即可。

发表评论

您的电子邮箱地址不会被公开。