Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从url下载数据的Bash脚本_Bash_Csv_Crontab_Wget - Fatal编程技术网

用于从url下载数据的Bash脚本

用于从url下载数据的Bash脚本,bash,csv,crontab,wget,Bash,Csv,Crontab,Wget,我有一个URL,我必须每天从中下载数据,例如:www.manishshukla.com/files/05-17-2016.csv 在上面的URL中,它为我提供了2016年5月17日的数据。同样,对于2016年5月18日的数据,URL将为:www.manishshukla.com/files/05-18-2016.csv 我想要Bash脚本,它将自动获取当天的日期并下载文件 请帮我怎么做。我还想在cron上添加此作业,这样我就不需要手动运行代码。您可以使用以下方法: wget www.manish

我有一个URL,我必须每天从中下载数据,例如:
www.manishshukla.com/files/05-17-2016.csv

在上面的URL中,它为我提供了2016年5月17日的数据。同样,对于2016年5月18日的数据,URL将为:
www.manishshukla.com/files/05-18-2016.csv

我想要Bash脚本,它将自动获取当天的日期并下载文件

请帮我怎么做。我还想在
cron
上添加此作业,这样我就不需要手动运行代码。

您可以使用以下方法:

wget www.manishshukla.com/files/"$(date '+%d-%m-%Y')".csv
如果你想把它保存在某个特定的地方,那么

wget www.manishshukla.com/files/"$(date '+%d-%m-%Y')".csv -P /path/to/dir

您可以将此命令放在每日cron中,以便每天下载文件。对于cron,使用
wget
的完整路径,即
/usr/bin/wget
/usr/local/bin/wget
或其他任何路径。

此处有两位。一个是调度cron作业,另一个是获取并保存文件

步骤:

  • 打开终端并运行
    crontab-e

    分钟(0-59)小时(0-23)天(1-31)月(1-12)工作日(0-6)命令

  • 代替分钟、小时、日、月和工作日。还提供要运行的命令

  • 在这里显示的命令是:
    wget www.manishshukla.com/files/“$(日期'+\%d-\%m-\%Y')”。csv

  • 保存文件&作业已安排

  • 在您的情况下:

    0 0 * * * wget --quiet -O www.manishshukla.com/files/"$(date '+\%d-\%m-\%Y')".csv
    

    这将在每天0小时0分钟运行该命令

    添加了
    \
    以转义
    %
    ,因为如果不转义,它可能无法在corntab中工作

    命令中的百分号(%),除非用反斜杠()转义, 将更改为换行符,并且所有数据都在第一个字符之后 %将作为标准输入发送到命令


    你能给我提供完整的代码,从开始以及下载文件的保存。我了解如何在cron上调度它,我需要完整的bash脚本。这样我就可以在我的终端上运行它,也可以在以前的日期运行。它从今天开始并继续运行。如果您想在以前的日期使用它,那么只需编写一个for循环,以放置适当的日期,并使用
    wget
    curl
    获取文件。请注意,这可能不起作用:您需要在cron表达式中避开
    %
    。@fedorqui谢谢,将其添加到了答案中。老实说,谁对这个糟糕的问题投了反对票。没有特别的问题,他们只是要求别人为他们写一个脚本
    0 0 * * * /usr/bin/curl www.manishshukla.com/files/"$(date '+\%d-\%m-\%Y')".csv