Linux定时向目标服务器传输文件

    科技2024-05-31  87

    需要用到的工具有:sshpass

    安装sshpass sudo apt install sshpass 然后先传输一个文件试试,同时把ssh key也接收了: scp 本机文件路径 目标服务器用户名@目标服务器IP:目标路径 # 如 scp ~/test.txt root@192.168.0.2:/srv/ ;把本地test.txt传给远程服务器/srv/目录下

    如果要传一个目录下的全部文件,使用如下:

    scp /本机文件路径/* 目标服务器用户名@目标服务器IP:目标路径 # 如 scp ~/test/* root@192.168.0.2:/srv/ ;把本地 ~/test/ 下的全部文件都传给远程服务器/srv/目录下 把传输任务写入脚本,配置linux的定时任务: echo 'sshpass -p 远程服务器密码 scp 本地文件 root@192.168.0.2:目标路径' > auto_send.sh chmod +x auto_send.sh # 例:sshpass -p passwd scp ~/test/* root@192.168.0.2:/srv/ # 使用sshpass 可以使用 -p 密码配置,不用每次使用scp都要输密码了 配置定时任务: crontab -e

    然后在结尾添加:

    */1 * * * * auto_send.sh # 每分钟运行一次 0 0 * * * auto_send.sh # 每天0点运行一次

    可以查看一下当前的定时任务确认一下:

    crontab -l

    更多配置请参考:https://www.jianshu.com/p/d93e2b177814

    保存配置后即可定时传输文件

    注意:

    发送的时间是按照服务器的时区走的,如果不是中国CST时区,需要修改服务器的时区请参考:Linux一行代码修改时区在使用sshpass前一定要先连一下,以确保已接收到ssh key,否则会不传输同时也不会报错
    Processed: 0.014, SQL: 8