利用scp进行远和vps相互备份的自动脚本,需要用到expect命令,debian下安装:apt-get install -y expect

然后把下面的脚本另存为backup.sh,给个权限:chmod +x backup.sh

#!/bin/bash
#自定义本机vps名字,可以自已改
vpsname="name_vps"

#远程vps信息,下面的信息根据自已的情况更改,是要备份到哪个vps上,就写哪个vps的信息
#--->IP
Remote_IP=8.8.8.
#--->Port端口
Remote_Port=22
#--->目录
Remote_dir=/home/backup/$vpsname
#--->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

#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*'
tar -zcPf ftp_$vpsname.tar.gz /home/ftp/*

#利用expect进行远程scp备份
expect -c "
#spawn ssh -p $Remote_Port root@$Remote_IP
spawn scp -P $Remote_Port -r $Local_dir/ root@$Remote_IP:$Remote_dir
expect {
    "*yes/no" {send \"yes\r\"; exp_continue}
    "*password" {send \"$Remote_PW\r\" }
}
interact"

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注