ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?

sh/bash/dash/ksh/zsh等Shell脚本
头像
needle
帖子: 78
注册时间: 2009-12-01 13:34

Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?

#16

帖子 needle » 2013-04-05 19:58

咦,你不是一直在用root用户操作吗?

原理如下:
确实,是环境变量的问题,
你用哪个用户可以运行成功,
就用哪个用户的cron
但cron只会使用非常有限的此用户的环境变量,不是此用户的完整环境。
所以在cron执行脚本时最常看到的就是导入PATH或者source ~/.profile;更好些。
这条su -lc ""能够执行是因为root切换到其他用户的完整shell环境,不需要输入密码。
:em11
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~
xsuii
帖子: 14
注册时间: 2013-04-04 13:16
系统: ubuntu12.04

Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?

#17

帖子 xsuii » 2013-04-06 1:14

needle 写了:咦,你不是一直在用root用户操作吗?

原理如下:
确实,是环境变量的问题,
你用哪个用户可以运行成功,
就用哪个用户的cron
但cron只会使用非常有限的此用户的环境变量,不是此用户的完整环境。
所以在cron执行脚本时最常看到的就是导入PATH或者source ~/.profile;更好些。
这条su -lc ""能够执行是因为root切换到其他用户的完整shell环境,不需要输入密码。
我之前是使用“sudo -s”进入root状态的,而且编辑shell和关联API都是在这种情况下进行操作的。这种情况不能算是root吗?
在网上查过说sudo是让普通用户使用root权限的工具。那么说这种情况下编辑的文件应该属于哪个用户呢?照理说我用“ls -l”查看文件属性是属于root的,但是按之前的状况来看,它并不能被root的cron执行。
大致明白了些,但是还有些模糊啊。 :em20
问题是解决了,但还有许多东西要理清。
回复