【问题标题】:Run two commands in cron在cron中运行两个命令
【发布时间】:2016-11-03 20:03:18
【问题描述】:

我需要每小时运行一个任务。我首先将目录更改为脚本所在的路径,然后操作该脚本。所以我尝试使用 cron 作业:

59 * * * * cd /home/sansal/Scripts && sudo ./usbreset /dev/bus/usb/002/003  

我将该行添加到 crontab。但我无法确定这是不是真的。而且我在终端中没有看到任何关于此的输出。

【问题讨论】:

  • 不用换目录,用脚本的绝对路径/home/sansal/Scripts/usbreset /dev/bus/usb/002/003
  • 所以:59 * * * * /home/sansal/Scripts/usbreset /dev/bus/usb/002/003 ?
  • 我的回答不是很清楚吗?

标签: linux terminal cron crontab


【解决方案1】:

使用完整路径肯定比首先使用 cd 更好。要获得 cronjob 的结果,您可以像这样输出到文件:

59 * * * * /home/sansal/Scripts/usbreset /dev/bus/usb/002/003 &>> /home/sansal/usbreset.log

【讨论】:

    【解决方案2】:

    您可以使用|| 测试脚本是否失败

    59 * * * * /home/sansal/Scripts/usbreset /dev/bus/usb/002/003 || echo "usbreset failed"
    

    cron 自动发送包含任何命令输出的电子邮件。

    【讨论】:

    • 您还可以将echo 命令的输出重定向到文件。这并不取决于您的电子邮件配置是否正确。
    • @KeithThompson 我该怎么做?
    • @ŞansalBirbaş 查看其他答案。你不知道进行输出重定向的基本 shell 语法吗?
    • @Barmar echo usbreset.log ?
    • @ŞansalBirbaş echo usbreset failed >> usbreset.log
    猜你喜欢
    • 2012-03-27
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多