需求
需求:主机A(uos:192.0.0.1)/home/test/upload文件夹备份到主机B(uos:192.0.0.2)/home/test/upload,在主机A执行scp复制文件。
scp -r /home/test/upload/* test@192.0.0.2:/home/test/upload/
编写脚本
- 用sshpass插件处理输入密码的问题,主机A添加脚本
vi /home/test/back.sh
#!/bin/bash
sshpass -p 123456 scp -r /home/test/upload/* test@192.0.0.2:/home/test/upload/
- 添加crontab定时任务,
crontab -e
0 0 * * * sh /home/test/back.sh
- 保存后退出:对于vi或vim,按Esc键,然后输入:wq并按Enter键。对于nano,按Ctrl + X,然后按Y,再按Enter键。
service cron restart
, 重启crontab定时任务- 使用
crontab -l
命令,查看正在执行的任务列表
定时任务执行后文件没有复制,失效了,本人测试失败,尝试使用免密登录
免密登录
- 在主机A用root登录后,生成配对密钥:
ssh-keygen -t rsa
,提示信息默认回车即可。公钥存放路径:/root/.ssh/id_rsa.pub
,生成公钥时有文件夹路径显示 - 在主机B查看是否有
/home/test/.ssh/authorized_keys
文件:
1.如果存在,把主机A/root/.ssh/id_rsa.pub
文件内容复制到主机B/home/test/.ssh/authorized_keys
文件里面
2. 如果不存在,把主机A的/root/.ssh/id_rsa.pub
文件复制到主机B,并改名authorized_keys
scp /root/.ssh/id_rsa.pub test@192.0.0.2:/home/test/.ssh/authorized_keys
- 测试 ssh test@192.0.0.2
修改脚本
主机A编辑脚本vi /home/test/back.sh
#!/bin/bash
scp -r /home/test/upload/* test@192.0.0.2:/home/test/upload/