我想使用 wget 和 cron 作业每天提取一个文件,但是我希望它从远程服务器提取前一天的文件,并且该文件由 URL 中的日期变量控制,如下所示:
http://example.com/export/file.csv?DateRange=20150429,20150429
我可以使用以下命令获取当前日期:
/usr/bin/wget --output-document=/file.csv "http://example.com/export/file.csv?DateRange=`date +%Y%m%d`,`date +%Y%m%d`"
不过,这个文件并不好;我想提取昨天的日期而不是今天的日期。
有什么办法可以减去1天吗?
答案1
如果你有 GNU 日期,你可以这样做:
date -d yesterday +%Y%m%d
例如:
$ date -d yesterday +%Y%m%d
20150430
$ date +%Y%m%d
20150501
命令是:
/usr/bin/wget --output-document=/file.csv "http://domain.com/export/file.csv?DateRange=`date -d yesterday +%Y%m%d`,`date +%Y%m%d`"
查看GNU 文档了解更多示例。您还可以执行:
date --date='1 day ago'
或date --date='-1 day'
。