ubuntu crontab 不执行的解决方法1

很多时候我们会遇见这种情况,我们千辛万苦写了一个脚本,经过测试,一切正常,然后放到了crontab里面执行,结果,不管怎么配置,就是执行不正常。

小编经常遇到,在网上查找了很多,也问过很多人,都没有一个确切的说法。后来无意间发现了一个环境问题,居然是这个异常的元凶。

我们先在我们的服务器上执行env命令,出现如下:

XDG_VTNR=1
XDG_SESSION_ID=1
HOSTNAME=bogon
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/run/user/0/keyring/gpg:0:1
VTE_VERSION=3802
TERM=xterm
SHELL=/bin/bash
XDG_MENU_PREFIX=gnome-
HISTSIZE=1000
GJS_DEBUG_OUTPUT=stderr
WINDOWID=37748743
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
IMSETTINGS_MODULE=IBus
QT_GRAPHICSSYSTEM_CHECKED=1
USER=root
SSH_AUTH_SOCK=/run/user/0/keyring/ssh
USERNAME=root
SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1672,unix/unix:/tmp/.ICE-unix/1672
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
MAIL=/var/spool/mail/root
DESKTOP_SESSION=gnome
QT_IM_MODULE=ibus
PWD=/root
XMODIFIERS=@im=ibus
LANG=zh_CN.UTF-8
GDM_LANG=zh_CN.UTF-8
KDEDIRS=/usr
GDMSESSION=gnome
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignoredups
HOME=/root
XDG_SEAT=seat0
SHLVL=2
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XDG_SESSION_DESKTOP=gnome
LOGNAME=root
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-VQpgyslPbO,guid=0b7c6ec0e15a92dd89a8eaf654f84153
LESSOPEN=||/usr/bin/lesspipe.sh %s
WINDOWPATH=1
XDG_RUNTIME_DIR=/run/user/0
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME
XAUTHORITY=/run/gdm/auth-for-root-A4DlSi/database
_=/usr/bin/env然后我们编辑一个crontab,如下:
* * * * * env > /home/crontab.out然后我们在/home/crontab.out文件中,看看里面的内容。令人奇怪的是,我们发现的里面的信息只有
XDG_SESSION_ID=3
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
PWD=/root
LANG=zh_CN.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env

我们先不讨论原因,这里,我们就可以看到为什么很多脚本在crontab中编辑后不可以运行了。因为crontab的任务环境就没有定义那么多的环境变量,我们在交互式的环境下写的脚本中用到了这些没有的环境变量,当然可以通过,但是放到crontab下就不行了。

那么这些环境变量居然差那么多,为什么呢?因为系统的cron deamon会自动设置可构成最小环境的环境变量。

解决方案可以有两种:

  1. 定义好一些环境参数,并在crontab里面先source生效,再执行主程序脚本
  2. 直接把脚本中的环境变量改为绝对路径。

ubuntu crontab 不执行的解决方法2

在linux上需要监控网络的流量,在crontab里面设置的是每分钟执行一次,但是没达到自己想要的结果,分析过程如下:
1.查看/var/log/syslog发现有错误,info (No MTA installed, discarding output),意识到crontab的脚本没有把输出到日志
2.输出到日志后,发现sorry,I can not detect any network device,please report this issue to author.,这个错误是脚本里面打印的,说明其实是crontab是执行了
3.输出这个是找不到网卡,crontab里面找不到eth0,ifconfig这个写全路径后/sbin/ifconfig,这个错误消失了
4.错误在一步步减少,但是任然和预想的有差距,在脚本里面输出echo $PATH后发现:/usr/bin:/bin,但是其实正式的环境变量应该是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
5.修改脚本,在顶部直接导入环境变量PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games,问题解决

参考链接 :

ubuntu crontab 不执行的解决方法 :http://ciika.com/2017/11/ubuntu-crontab-cannot-exec/

ubuntu crontab 不执行的解决方法相关推荐

  1. ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件

    什么是Cron和Crontab Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本.更详细的概念和使用 ...

  2. Ubuntu 无法安装第三方软件的解决方法

    Ubuntu 无法安装第三方软件的解决方法 Ubuntu自带的软件下载中心抽风,安装失败不支持(Ubuntu20.04) 若下载的是deb包,在终端中输入如下指令: sudo apt install ...

  3. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 参考文章: (1)jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 ( ...

  4. ubuntu sudo apt-get update 失败 解决方法

    ubuntu sudo apt-get update 失败 解决方法 参考文章: (1)ubuntu sudo apt-get update 失败 解决方法 (2)https://www.cnblog ...

  5. (转)调用System.gc没有立即执行的解决方法

    调用System.gc没有立即执行的解决方法 查看源码 当我们调用System.gc()的时候,其实并不会马上进行垃圾回收,甚至不一定会执行垃圾回收,查看系统源码可以看到 /*** Indicates ...

  6. 双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法

    双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法 参考文章: (1)双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法 (2)https://www.cnblogs. ...

  7. ubuntu 12.04 ubuntu System program problem detected 解决方法

    ubuntu 12.04 ubuntu System program problem detected 解决方法 参考文章: (1)ubuntu 12.04 ubuntu System program ...

  8. 虚拟机ubuntu 网速慢的解决方法

    虚拟机ubuntu 网速慢的解决方法 参考文章: (1)虚拟机ubuntu 网速慢的解决方法 (2)https://www.cnblogs.com/talented-stefan/p/11627468 ...

  9. Ubuntu鼠标移动中闪烁解决方法

    Ubuntu鼠标移动中闪烁解决方法 更新显卡/核显驱动即可,到官网找驱动

最新文章

  1. Button的使用(六):ToggleButton
  2. Android官方开发文档Training系列课程中文版:连接无线设备之通过P2P搜索网络服务
  3. promise的三种状态_一.Promise中核心逻辑的实现
  4. SpringBoot 动态创建多定时任务
  5. 鸿蒙卡片-物联网DTU污水液位计卡片
  6. 华为Mate 20 X 5G版打通5G电话:音质饱满画面清晰
  7. .net MVC Model
  8. 非域环境下安装并配置Project Server 2007(二)
  9. golang日志收集方案之ELK
  10. 基于JAVA_JSP电子书下载系统
  11. 群晖NAS教程(十三)、利用Web Station安装wordpress博客
  12. STM32键盘扫描程序
  13. 介绍中国传统节日的网页html,中国传统节日介绍:中秋节
  14. 什么是双机热备?双机热备软件介绍
  15. 新浪接口“Kinsoku jikou desu” 日语禁止访问
  16. 高分辨率遥感卫星影像在交通方面的应用
  17. 梨花院落溶溶月,柳絮池塘淡淡风-- 我心中的七剑与梁羽生
  18. 【水果识别】基于形态学实现水果识别含Matlab源码
  19. fatal: does not appear to a git repository
  20. 设计模式常用的七大原则

热门文章

  1. HTML页面多个平行四边形,平行四边形奥数题
  2. java 命令行 读取文件_java – 将文件作为命令行参数传递并读取其行
  3. poj 1330(LCA)
  4. 计算机应用基础进制转换说课稿,计算机应用基础信息技术基础《进制转换》教案.doc...
  5. 2019年湖南-粤港澳大湾区投资贸易洽谈周4月举行
  6. 《Android深度探索》(卷1)HAL与驱动开发 第十章心得体会
  7. 【算法】验证哥德巴赫猜想
  8. 百万数据查询优化技巧三十则
  9. struts2+hibernate3.3+spring3.0 实现零配置
  10. 《Windows Mobile平台应用与开发》写作工作顺利进行中