【问题标题】:crontab extract cron expressioncrontab 提取 cron 表达式
【发布时间】:2020-02-05 20:37:08
【问题描述】:

当我执行 crontab -l 时,我可以看到我所有的工作

56 12 3 2 * /usr/bin/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "https://server6.mp3quran.net/akdr/001.mp3" "Office Ustairs speaker" >> .error.log  2>&1 # Al-Fatiha - [Verses 7]
56 12 * * * /files/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "https://server6.mp3quran.net/akdr/001.mp3" "Office Ustairs speaker" >> .error.log  2>&1 # Al-Fatiha - [Verses 7]
31 18 3 2 * /usr/bin/python3 /home/pi/Saqib/RaspBerryPiAdhan/www/commands/player.py "/static/media/azan5.mp3" "Office Ustairs speaker" # prayer_isha

无论如何我只能提取“表达式”?

我需要这样出去......

56 12 3 2 * 
56 12 * * * 
31 18 3 2 * 

【问题讨论】:

    标签: bash shell cron


    【解决方案1】:

    这应该可行:

    crontab -l |awk '{NF=5}1'
    

    在这里您告诉 awk 每行中的字段数是 5 ,这会导致打印前五列。

    【讨论】:

    【解决方案2】:

    你可以使用以下

    crontab -l | sed 's/  *\/.*//'
    

    它用空字符串替换斜杠(需要转义,\/)之后的所有内容(.*),包括它和它前面的空格(*)。

    如 cmets 所示,此解决方案根本不可靠,因为它依赖于问题中示例特有的格式。

    【讨论】:

    • “每四个小时”的表达式是0 */4 * * *。普通邮件警报可能是0 8 * * * echo "Time to wake up" | mail me@host。两者都会导致此命令失败
    • 哦,好吧,我不知道 crontab 的输出格式,所以我的问题是基于 OP 中显示的示例。不过,感谢您指出这一点。
    【解决方案3】:

    剪切也应该起作用。

    crontab -l | cut -d ' ' -f-5
    

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2018-06-13
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多