今天遇到一个奇怪的问题,同样一个脚本,手动执行没问题,加入到crontab中,就出现无法运行的情况,第一反应是环境变量问题

环境说明:

操作系统:centos

用户:test用户通过sudo su切换到root用户执行脚本和计划任务

程序目录:脚本中引用的程序在/usr/local/bin目录下

1,查看/etc/crontab,发现这里有写环境变量,之前没有红框中的目录,我手动添加以后,重启crontab服务。

service crond restart

重启之后,测试还是不行,做了一个这样的计划任务

执行之后,发现只有/usr/bin:/bin:/usr/sbin

居然没有/usr/local/bin怪不得程序不能运行。

2,之后尝试将变量写入到家目录的.bash_profile中,比如/root/.bash_profile中,发现也不行,估计是因为这个root是通过test的sudo得来的,没有加载环境变量。

3,终极解决方案:

前提:将需要的程序目录添加到/etc/profile最后,如下

方案一:在计划任务中增加source /etc/profile,这样执行

方案二:在脚本的开头中添加source /etc/profile

总结:

个人感觉方案二比较合适,有更好的适应性,脚本在新的机器上也可以正常运行。另外,就是计划任务启动以后,一定要检查是不是真的正确执行了!!!

最新文章

  1. 驱动开发学习笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇
  2. Js-动态控制table的tr、td增加及删除的具体实现
  3. nginx rewirte
  4. http协议简述
  5. windows server 时间同步
  6. 决定undo表空间的大小
  7. 395. Coins in a Line II
  8. multipath.conf
  9. Android面试,与Service交互方式
  10. Android4.0强制横屏竖屏
  11. 豆瓣FM duilib版
  12. poj3159最短路spfa+邻接表
  13. hihocoder_1014: Trie树(Trie树模板题)
  14. FFMPEG列出DirectShow支持的设备
  15. sublime Text 常用插件
  16. JS判断变量类型
  17. MATLAB相关快捷键以及常用函数
  18. es6学习笔记6--Generator 函数
  19. 如何取消idea中的本地源码关联
  20. Python中的文件IO操作(读写文件、追加文件)

热门文章

  1. Zlib编译
  2. 11i REP-3000: 启动 Oracle Toolkit 时发生内部错误.
  3. 关于Android内存优化你应该知道的一切
  4. metasploit study
  5. PHP计算两个时间的年数、月数以及天数
  6. TortoiseGit在github上创建工程
  7. 转: maven打可执行的jar包以及classpath设置
  8. 基于Wiremock创建Mock Service平台
  9. java 环境变量配置 Mac
  10. > 1366 - Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95...' for column 'description' at row 1 字符串格式错误