我按照这里的说明进行操作here community/AWStats
它说要去这个文件:/etc/crontab
那个文件已经有一些信息了。这是主要的crontab文件还是其他什么东西?我在网上看到一些指示要使用弹出的文件,用crontab -e。
应该使用哪个正确的文件,以及最好的方法是什么?
如果我将任务安排为非root用户,它会按照指定的时间间隔自动运行,没有问题吗?
在保存了crontab文件中的cron作业后,我需要重新启动服务器才能开始工作吗?
使用哪个文件和最佳方法来完成这个任务?
crontab -e
是最佳的方法 - 这将允许您轻松编辑每个用户的定时任务。
如果我以非root用户身份安排一个任务,它会按照指定的时间间隔自动运行吗?会有什么问题吗?
是的,它会按照该用户账户的权限运行。
原则上,最好以尽可能低的权限运行定时任务,所以如果您的操作不需要root权限,就不要使用root。如果您甚至不需要访问您账户的文件和文件夹,那么您可以创建一个新用户,仅仅用于执行该任务。另一方面,如果您的任务确实需要root权限,请使用root的定时任务(使用su
/ sudo su
切换到root,然后使用crontab -e
)。
在保存了crontab文件中的cron任务后,我是否需要重新启动服务器才能使其开始工作?
不,它会立即开始工作(嗯,下一个可能的计划时间)。crontab
。crontab -l
crontab
时,只需执行以下操作crontab -e
第一次使用crontab
时,你会被要求选择一个编辑器。由于你自称是新手,我建议使用nano,它是最简单易用的编辑器。
关于crontab本身的工作原理如下:
MIN = Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW = Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line
*/15 * * * mon /home/me/yourscript.sh
是的,将您的cronjob放入具有足够执行权限的用户的crontab中非常重要。
因此,如果您的脚本需要root或特殊用户,请确保su到该用户并在那里添加cronjob。
还有非常重要的一点!
cronjob很笨!是的,我说了。始终确保输入您正在使用的应用程序/命令/脚本
的完整路径,因为crontab无法使用.bashrc
或类似文件。您始终必须确保告诉cron可以在哪里找到文件和目录。
回答您其余的问题:
当然它会自动运行,这就是它存在的原因。但是您需要检查cronjob是否真的做到了这一点,或者是否遗漏了某些内容。例如,登录日志文件以查看它是否真正起作用。
不,不需要重新启动。在Linux中,通常只有在安装新内核时才需要重新启动。要使用它,您需要重新启动。几乎所有其他操作都可以在Linux中完成而无需重新启动。当然有例外情况,但总体上这个说法是正确的。
crontab -e
允许您在不使用sudo的情况下编辑您的用户crontab。用户的crontab位于/var/spool/cron/crontabs
目录中,该目录无法在没有超级用户权限的情况下访问(但是一旦cron放弃特权,仍然能够读取它)。即使您使用sudo直接尝试编辑文件,您也会在顶部看到一个大警告:“请勿编辑此文件” - 该文件设计为使用crontab
命令进行编辑,该命令在/tmp
中使用临时副本,然后在保存后安装它。 - thomasrutter