【问题标题】:Bash script to use wget to download a file and restart a service使用 wget 下载文件并重新启动服务的 Bash 脚本
【发布时间】:2022-10-20 12:56:29
【问题描述】:

我有 2 个命令要一个接一个地运行,并想创建一个脚本并将其添加到 cron。我的命令是:

wget http://browscap.org/stream?q=Full_PHP_BrowsCapINI -O /etc/php/7.2/mods-available/browscap.ini
service php7.2-fpm restart

是否可以让它下载文件,等到它完成然后运行重启脚本?

【问题讨论】:

  • 在这种情况下,servicewget 完成后运行,因为它是前台进程

标签: linux bash


【解决方案1】:

要在 wget 下载完成后运行第二个命令,请使用双 & 符号 && 分隔这两个命令

作为一个单行:

wget http://browscap.org/stream?q=Full_PHP_BrowsCapINI -O /etc/php/7.2/mods-available/browscap.ini && service php7.2-fpm restart

只有当第一个命令(wget 下载)成功完成时,双符号 && 之后的命令才应该运行。

【讨论】:

    【解决方案2】:

    根据 wget 手册,在传递下载命令时使用 wait 选项(从 CLI 键入 man wget 以查看更多信息):

    wget -w seconds http://browscap.org/stream?q=Full_PHP_BrowsCapINI -O /etc/php/7.2/mods-available/browscap.ini 
    service php7.2-fpm restart
    
    or 
    
    wget --wait=seconds http://browscap.org/stream?q=Full_PHP_BrowsCapINI -O /etc/php/7.2/mods-available/browscap.ini
    service php7.2-fpm restart
    

    这将强制脚本在继续执行服务重启命令之前等待指定的秒数。

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      相关资源
      最近更新 更多