crontab 指定執行使用者

weixin_34162629發表於2015-06-02

linux下可以通過配置crontab來定時執行任務,執行體可以是一條系統命令或自己寫的一個指令碼,同時可以指派使用者來執行。配置crontab有兩種方法。
方法1、使用crontab命令,例如新增一個新的或編輯已有的,使用:

crontab -e

就可以進入配置檔案。此時配置crontab的執行者是當前登入使用者,如果當前使用者是root,需要為其他使用者配置,可以使用

crontab -e -u 使用者名稱

或
su 使用者名稱
crontab -e

這種方法有一個缺點,就是當前系統中配置的crontab不在一個配置檔案中,讓管理員不方便查詢系統到底有多少個crontab。

方法2、直接在/etc/crontab檔案中新增,不過需要是root身份。開啟檔案,應該會看到類似下面的資訊

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

要新增新的crontab,只需要在檔案最後增加即可。注意這裡面需要指定使用者名稱;而方法1中則不需要,如果指定了,它會認為是命令的一部分,從而可能導致crontab執行失敗。

如果伺服器都是有root來管理,建議新增crontab使用方法2,這樣系統中的所有計劃任務都在一起,一目瞭然。

相關文章