使用DOY作为文件名的一部分,获取日期并通过ftp下载文件

时间:2016-09-16 15:51:36

标签: bash ftp cron variable-assignment heredoc

我目前有一个bash脚本,其唯一的工作是每天登录FTP服务器并下载文件。部分文件名是一年中的一天(DOY)。所以我得到当前日期并使用select count(*) from myTable where myColumn is null; 选项获取DOY。以下是我的代码片段:

%j

当此脚本运行时,它不仅会获取当前DOY的文件,还会获取之前的所有文件。因此,如果今天是DOY 260,它将获得从0到260的所有文件。我只想要260.我的其余bash脚本是来自以下网站的模型:Automatic/periodic FTP download using cron jobs。我做错了什么?

编辑:@redneb请求的完整脚本

doy=$(date +%j)
mget filename_$doy*

编辑2:@Cyrus的回答有效。这是我最后的工作脚本,以防其他人需要帮助。在登录FTP服务器之前,需要输入bash命令。谢谢!

#!/bin/bash
HOST='ftp.server'   # change the ipaddress accordingly
USER='user'   # username also change
PASSWD='pass'    # password also change
ftp -inv $HOST<<EOF
quote USER $USER
quote PASS $PASSWD
bin
cd /filedirectory/
doy=$(date +%j)
mget filename_$doy*
bye
EOF

1 个答案:

答案 0 :(得分:1)

移动

doy=$(date +%j)

之前的一行
ftp -inv $HOST<<EOF