crontab 指定執行使用者

2021-09-08 11:01:05 字數 1127 閱讀 3252

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,這樣系統中的所有計畫任務都在一起,一目了然。

crontab執行後郵件發到指定郵箱

原來在crontab配置檔案 etc crontab中mailto設定成自己的gmail郵箱,但是遲遲沒有收到郵件,登陸上去一看郵件還是發到了 var spool mail root內。後來網上查了下,原來我的crontab命令是在crontab e中定義的,而 etc crontab中的mailt...

crontab檢視執行結果,刪除指定定時任務

寫完crontab定時任務,並不知道他的執行結果,我們可以通過grep 指令碼名 var log cron命令,檢視執行的結果 root bogon default grep index.php var log cron jun 14 21 14 01 bogon crond 4542 han cm...

crontab指定時間

使用crontab你可以在指定的時間執行乙個shell指令碼或者一系列linux命令。例如系統管理員安排乙個備份任務使其每天都執行 如何往 cron 中新增乙個作業?crontab e 0 5 root bin backup.sh 這將會在每天早上5點執行 root bin backup.sh cr...