|  |      1pq      2017-11-08 11:32:44 +08:00 如果这程序一定要用它自己的 uid 来运行的话,你得在系统级的 crontab 里指定 uid,或者干脆以这个 uid 登录后添加用户级 crontab。。。 | 
|  |      2picone      2017-11-08 11:48:04 +08:00 计划任务改成 sudo -u aa 呗 | 
|      3julyclyde      2017-11-08 13:35:15 +08:00 联想能力真丰富,你怎么就“意味着没登录”了? 你还没说你那个 aa 程序内是啥功能呢 通过 geteuid、环境变量、getlogin、读 utmp 等方式获得到的身份信息 *不一定* 相同 | 
|  |      4hugee      2017-11-08 13:37:32 +08:00 via Android chmod +x aa, 另外加上环境 path | 
|  |      5aocif23 OP @julyclyde  程序就是 openshift v3 的 oc,帖子里的命令是乱写的不用理会,登陆后它会建立配置目录 /root/.kube,里面有很多文件和目录,有一个文件里有登陆信息,包括用户名和 token 等 | 
|      6alvinbone88      2017-11-08 14:17:16 +08:00 直接用绝对路径来执行命令,就像这样: /path/to/aa --help | /path/to/grep url >> /home/a/a.log | 
|  |      7aocif23 OP @alvinbone88  真的是路径问题,可是我已经在 /root/.bashrc 里添加了 path。。。 | 
|  |      9tonghuashuai      2017-11-08 14:56:56 +08:00 | 
|  |      10Cu635      2017-11-08 15:02:22 +08:00 @tonghuashuai  后面的是把 stderr 重定向到 stdout,再将 stdout 的内容重定向到文件里。 而很明显,lz 的问题是程序 aa 正常运行时有 stdout 输出的,但是在 cron 中连 stdout 输出都没有。所以你的说法不对。 | 
|  |      11jasonyang9      2017-11-08 15:04:37 +08:00 | 
|      12alvinbone88      2017-11-08 15:37:31 +08:00 @aocif23 #7 crontab 的 PATH 应该加在 /etc/crontab 中,直接在最前面加: PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | 
|  |      13aocif23 OP @alvinbone88  谢谢指点,以前不知道要写这里 | 
|      14julyclyde      2017-11-08 17:58:24 +08:00 @jasonyang9 profile 不是全局配置。Linux 里基本上没有“全局配置”这个概念 profile 是给“登录 shell ”用的初始化文件 | 
|      15tszyh      2017-11-08 18:32:43 +08:00 echo $PATH |