这是 crontab 作业
/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1
Run Code Online (Sandbox Code Playgroud)
每次运行作业时如何生成新日志?
每次生成日志文件时,我都会向它添加一个递增的计数器。不知道该怎么做。
我真的必须运行另一个 cron 作业才能做到这一点吗?
我在 debian 服务器上的 crontab 中注释掉了一行,我猜默认情况下它在那里但导致我每小时收到错误电子邮件:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Run Code Online (Sandbox Code Playgroud)
但是,错误电子邮件不断出现,就好像它没有被注释掉一样。错误邮件:
Subject: Cron <root@(none)> root cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如何从 crontab 打开 gnome 终端窗口?
我试过这个:
* * * * * /usr/bin/gnome-terminal
* * * * * source /home/user_name/.bashrc ; /usr/bin/gnome-terminal
* * * * * source /home/user_name/.profile ; /usr/bin/gnome-terminal
* * * * * source /home/user_name/.bashrc ; /home/user_name/bin/opengnometerminal.sh
Run Code Online (Sandbox Code Playgroud)
这些似乎都不起作用。
作为 root,我添加了用于crontab -e添加我的脚本。但是,脚本使用了二进制文件,/usr/sbin/当脚本从 cron 运行时,我收到一个关于它不存在的错误。我该如何解决?
time我正在寻找可以添加到 crontab 脚本中的命令的文档
* * * * * time somescript.sh
Run Code Online (Sandbox Code Playgroud) 这是在 CentOS 机器上。我试图在每天的某个时间以用户 nobody(或以最小权限的用户身份)运行脚本。这里没有人:
[root@CentOS % ~] grep "^nobody" /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
这是我在 root 的 crontab 中尝试过的:
设置环境变量 SUDO_USER=nobody
15 17 * * * sudo -u nobody /bin/bash /usr/local/bin/bashscript.sh
15 17 * * * su -c /usr/local/bin/bashscript.sh nobody
如果可能的话,我想将 crontab 条目保留在 root 的 crontab 中。我也不想欺骗用户nobody的帐户,因为我不想破坏可能依赖于这些设置的任何其他内容。如果这是症结所在,我并不反对创建另一个非特权帐户并给他们一个真正的外壳。
我也承认有点困惑。我认为这将是一个日常问题,除了我在 google-fu 中的棕色腰带没有太大帮助。
./script &>> log.txt
我得到了一个不错的日志文件,但是如果我有由 cron 执行的相同命令,那么可以说 crontab 看起来像这样:
* * * * * '/home/user/script &>> /home/user/log.txt'
Run Code Online (Sandbox Code Playgroud)
log.txt 将是空的,我试过 " 和 ' 和 ` 并且没有刻度来包含命令,知道为什么流不会被写入文件吗?
例如,有一种方法可以在一周的不同天运行 cron 作业
0 8,16 * * 1-6
Run Code Online (Sandbox Code Playgroud)
在周一至周六的 8:00 和 16:00 运行作业。
如果作业也应该在周日运行,但只运行一次(例如,仅在 16:00)怎么办?当然,可以使用 2 条线路,一条仅用于周日,另一条用于周一至周六。但是有没有办法在单个 crontab 行中说出来?
我的还没改/etc/crontab呢 它仍然是默认内容,这也是许多 Linux 发行版的默认内容:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * …Run Code Online (Sandbox Code Playgroud)