linux: 在crontab中指定执行用户
一,使用-u参数指定用户:
1,添加编辑命令时指定用户
# -e : 编辑
# -u : 指定用户名
root@lhdpc:/data/api# crontab -e -u www-data
crontab: installing new crontab
2,查看cron中命令时指定用户:
# -l : 列出命令
# -u : 指定用户名
root@lhdpc:/data/api# crontab -l -u www-data
二,使用root在/etc/crontab中指定用户
root@lhdpc:~# more /etc/crontab
# /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
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# 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
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root /usr/local/soft/php8.3.9/bin/php /home/liuhongdi/work/whoami.php
1,6,11,16,21,26,31,36,41,46,51,56 * * * * www-data /usr/local/soft/php8.3.9/bin/php /home/liuhongdi/work/whoami.php >>/data/logs/test_status_`date -d 'tod
ay' +\%Y-\%m-\%d`.log 2>&1
说明:直接编辑/etc/crontab,需要使用root用户
需要在命令前指定用户
三,查看所有用户的cron命令:
1, 列出所有添加了cron命令的用户
root@lhdpc:/data/api# ls /var/spool/cron/crontabs/
root www-data
2, 查看某用户的cron命令:
root@lhdpc:/data/api# more /var/spool/cron/crontabs/www-data