继续刚才的备份文件,刚才只是做到手动备份,定时自动备份的方法为运用crontab设置定时任务进行定时备份
自动定时备份遇到了一个问题就是远程连接需要输入密码
网上的ssh公钥私钥认证的方法可以进行linux与linux服务器间的认证,测试在windows上不可用,代码如下:
ssh-keygen -t rsa
结果如下
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
Your identification has been saved in /home/.username /.ssh/id_rsa.
Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c username@localhost
Generating RSA keys:
Key generation complete.
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
二:把id_rsa.pub文件拷贝到remote主机的用户目录下 然后再运行如下命令
cat id_rsa.pub >~/.ssh/authorized_keys
它将在/root/.ssh/目录下面生成authorized_keys这个文件
所以只能写一个简单的脚本test.sh,脚本如下:
set timeout 10
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set src_file [lindex $argv 3]
set dest_file [lindex $argv 4]
spawn rsync -avSH $src_file $username@$host:$dest_file
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" { send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
# expect eof
执行文件./test.sh 远程IP 远程用户名 远程密码 本地目录 远程目录
如果报错下载下expect的包:yum -y install expect
如下:./test.sh 192.168.1.1 administrator 123456 /home/test.123 /cygdrive/e/
将此命令写入crontab -e
0 0 * * * /home/test.sh 192.168.1.1 administrator 123456 /home/test.123 /cygdrive/e/
:wq保存退出即可