编辑crontab文件的正确方法是什么?

我正在尝试为我的网络服务器自动刷新awstats,并了解我需要使用cron来设置它。 那么每个用户都有一个crontab文件?

我按照社区/ AWStats的说明进行操作

它说要转到以下文件: /etc/crontab

该文件中已包含一些信息。 这是主要的crontab文件还是什么? 我在网上看到了一些使用crontab -e弹出的文件的说明。

什么是正确使用的文件和最佳方法?

如果我将任务计划为非root用户,它是否会按指定的时间间隔自行运行,没有问题?

将cron作业保存在crontab文件中之后我是否需要重新启动服务器才能开始工作?

什么是正确使用的文件和最佳方法?

crontab -e是最好的方法 – 这将允许您轻松编辑每用户crontabs。

如果我将任务计划为非root用户,它是否会按指定的时间间隔自行运行,没有问题?

是的,它将以该用户帐户的权限运行。

原则上,最好使用您可以使用的最低权限运行计划任务,因此如果您正在执行的操作不需要root,请不要使用root。 如果您甚至不需要能够访问帐户的文件和文件夹,则可以创建新用户并将该用户帐户用于该任务。 另一方面,如果您的任务确实需要root,请使用root的crontab( su / sudo su到root然后使用crontab -e )。

将cron作业保存在crontab文件中之后我是否需要重新启动服务器才能开始工作?

不,它会立即开始工作(好吧,下一个可能的预定时间)。

每个用户都拥有自己的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分钟触发一次工作,你就这样做了

 */15 * * * mon /home/me/yourscript.sh 

是的,将cronjob放入用户的crontab非常重要,该用户具有足够的权限来执行它。

因此,如果您的脚本需要是root用户或特殊用户,请确保su给该用户并在那里添加cronjob。

也很重要!

cronjob很蠢! 是的,我说过了。 始终确保将完整的PATH输入到您正在使用的application/command/script ,因为crontab不能与.bashrc或类似工具一起使用。 你总是要确保告诉cron它可以在哪里找到文件和目录。

要回答其余的问题:

当然它会依靠它自己运行,这就是它的用途。 但你需要检查cronjob是否真的这样做,或者它是否遗漏了什么。 例如,登录日志文件以查看它是否真的有效。

不,不需要重启。 如果安装新内核,通常只需要重启linux。 要使用它你需要重启。 几乎所有其他事情都可以在Linux中重启而无需重启。 当然也有例外,但总的来说这个说法是正确的。