crontab 指定非root用户运行脚本


crontab 脚本默认是root用户运行,在Laravel项目中,如果运行PHP-FPM的用户是非root, 比如www ,而定时任务又是root用户执行的,,会导致生成的laravel日志文件属于root,进而www用户无权限写入日志。

crontab常用命令

crontab -u //指定某个用户的cron服务
crontab -l //列出某个用户的cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

以上命令默认的用户是root,如果想指定某个用户,方式如下

crontab -u www -e //编辑www用户的命令
crontab -u www -l //查看www用户的命令列表

指定非root用户

如果直接编辑www的crontab命令,会发现其中的命令并没有执行,例如:

* * * * * /usr/bin/php /{laravel项目根目录}/artisan schedule:run >> /dev/null 2>&1

发现并不执行,而放在crontab -e中的却可以正常执行。

此时查看/var/logs/cron日志发现如下报错信息:

Apr 11 13:15:01 izuf60div2wtc0k655uschz CROND[2174]: (www) CMD (/usr/bin/php /{laravel项目根目录}/artisan schedule:run >> /dev/null 2>&1)
Apr 11 13:15:01 izuf60div2wtc0k655uschz CROND[2174]: (CRON) ERROR chdir failed (/home/www): No such file or directory

发现是由于指定了www用户的定时任务后,运行crontab命令失败了。原因是:找不到/home/www目录

/home/www创建对应目录后,命令正常执行, 日志权限问题也随之解决。

(完)

参考:

https://blog.csdn.net/cuiliwu/article/details/82623815

https://learnku.com/articles/6775/about-laravel-log-permissions

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crocutax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值