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

本文指导如何使用sshpass工具进行免密SSH文件传输,并通过Linux定时任务实现定期自动发送,包括基本操作、脚本编写和crontab配置实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要用到的工具有:sshpass

  1. 安装sshpass
sudo apt install sshpass
  1. 然后先传输一个文件试试,同时把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/目录下
  1. 把传输任务写入脚本,配置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都要输密码了
  1. 配置定时任务:
crontab -e

然后在结尾添加:

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

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

crontab -l

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

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

注意:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值