【Linux】SFTP定时下载文件

需求:使用sftp命令定时拉取文件

  • 原始命令
 1. sftp -oIdentityFile=/student/keys/id_rsa -oPort=8111 xxx.com
 2. cd /school/download/
 3. ls
 4. get xxx.csv
  1. 创建脚本down.sh,获取前一天的文件
#!/bin/bash
echo "Starting to sftp..."
# 使用sftp命令连接到远程服务器并执行操作
sftp -b - -oIdentityFile=/student/keys/id_rsa -oPort=8111 xxx.com << EOF
cd /school/download/
# 匹配以昨天的日期开头的所有文件
mget $(date -d "yesterday" +%Y%m%d)*.csv
bye
EOF
echo "$(date -d "yesterday" +%Y%m%d):download success ..." >> /home/sftp_download.log
  1. 添加定时任务
# 确保它有执行权限
chmod +x /path/to/down.sh

# 编辑cron任务
crontab -e

# 添加定时任务
0 1 * * * /path/to/down.sh

# 示意
 * * * * * command-to-be-executed  
 * - - - -  
| | | | |   
| | | | +---- Day of the week (0 - 7) [Both 0 and 7 mean Sunday, or use names]  
| | | +------ Month (1 - 12)  
| | +-------- Day of the month (1 - 31)  
| +---------- Hour (0 - 23)  
+------------ Minute (0 - 59)
  • 可能遇到的问题
-bash: ./down.sh:/bin/bash^M
解决:执行 sed -i 's/\r$//' down.sh
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值