Crontab:Ubuntu 运行脚本(菜鸟)

orr*_*rrp 4 bash scripts cron

我是 crontab 的新手,想从以下位置运行以下脚本/etc/crontab

0 15    * * *   root    bash-c 'for i in /home/dell/Downloads/*.{pdf,docx,png,jpg,PDF,DOCX}; do shred -zvu "$i" -n20; done'
Run Code Online (Sandbox Code Playgroud)

我试过有和没有bash-c选项,但脚本没有运行。

我的目标是:

  1. 从 Crontab 运行这个脚本
  2. 在启动时运行此脚本

帮助表示赞赏。

pLu*_*umo 13

您在命令bash和参数之后缺少一个空格-c

这应该有效:

0 15    * * *  root bash -c 'for i in /home/dell/Downloads/*.{pdf,docx,png,jpg,PDF,DOCX}; do shred -zvu "$i" -n20; done'
Run Code Online (Sandbox Code Playgroud)

一些额外的提示:

  • 如果不需要,请不要crontab以用户身份运行root
  • 你写道,你把它放在/etc/crontab文件中。不要直接编辑 crontab 文件,而是使用crontab -e命令或sudo crontab -e需要root权限的命令。请注意,您不要将该user字段放在“其他”crontab文件中。
  • 如果您有多个命令,您可以照常使用bash -c,但我宁愿将这些命令放在一个脚本中并从 crontab 执行它。

  • 要在启动时运行脚本,您可以使用@reboot代替0 15 * * *.

  • _“我不确定这里的 root 这个词是什么意思。”_ 查看 `/etc/crontab` 的标题: _与任何其他 crontab 不同,当你安装新版本时,你不必运行 `crontab` 命令您编辑此文件和 /etc/cron.d 中的文件。这些文件也**有用户名字段**,其他 crontab 都没有。_ 但是,在这种情况下,只涉及用户的主文件夹,因此在这种情况下不应使用 `root`。 (5认同)
  • 另请参阅 [其他两种类型的 Crontab](https://help.ubuntu.com/community/CronHowto#Two_Other_Types_of_Crontab) (2认同)