在crontab中执行脚本重要事项
crontab不能成功执行shell脚本的可能原因
- crond进程不存在,该进程是crontab的守护进程,它必须存在才能让crontab正常使用;
- 系统时间不对;
- 环境变量的问题:crontab执行脚本的时候不会读取用户的环境变量等配置,所以可能很多命令不能使用导致脚本执行失败;
- 脚本本身的问题。
针对以上几点,在使用crontab之前,我们应该:
检查crond进程是否正在正常运行;
这个很少见,毕竟大多数情况我们的时间都很标准,不过要是用不熟悉的机器,最好还是date一下;
这个应该是最容易出现的问题了,针对这种问题:
a. 在编写shell脚本的时候尽量用绝对路径使用命令;b. 在脚本开头export一下路径(长见的命令一般在/bin,/sbin,/usr/bin,/usr/sbin这几个路径下,所以不妨全部export一下:
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export LANG=en_US.UTF-8
如果不全部export的话,记得把使用到的命令which一下以确定命令的真实路径;
c. 使用脚本调用别的脚本,比如有三个脚本:run1.sh,run2.sh,run3.sh,假设这三个脚本都使用了cat、grep等命令,那么它们直接放在crontab中是不会被成功执行的,这时候我们可以写个run.sh,在run.sh中调用run1.sh,run2.sh,run3.sh,这样就不需要考虑export环境变量的问题,因为run.sh并没有使用系统命令,而run.sh调用run1.sh的时候已经不是crontab在管理了,所以会读取用户的环境变量。
- 拉出去枪毙吧,只能自己检查问题了,可以先手动执行一次,如果成功执行再考虑crontab相关的问题,不然诸如没有+x就放进crontab的问题肯定是不该的。
在crontab中执行脚本重要事项的更多相关文章
- linux下使用crontab定时执行脚本
使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...
- crontab 定时执行脚本出错,但手动执行脚本正常
原因: crontab 没有去读环境变量,需要再脚本中手动引入环境变量,可以用source 也可以用export 写死环境变量. 为了定时监控Linux系统CPU.内存.负载的使用情况,写了个Shel ...
- 在crontab中执行shell脚本的问题
crontab中记录的编写比较简单,下面是一个示例: * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssap ...
- UNIX crontab自动执行脚本
crontab 是不会加载环境变量的你手动执行可以是因为登录了oracle用户加载了环境变量,你可以在脚本里添加,echo $ORACLE_HOME echo $ORACLE_SID 等等试试,看看 ...
- 解决mysql5.6+在zabbix监控中执行脚本出现密码的错误问题
1.mysql命令行中授权mysql监控所需的账号和密码(权限select权限即可) 2.通过mysql_config_editor 配置登录问题: [root@back_zabbix_100 scr ...
- Python文件中执行脚本注释和编码声明
在 Python 脚本的第一行经常见到这样的注释: #!/usr/bin/env python3 或者 #!/usr/bin/python3 含义 在脚本中, 第一行以 #! 开头的代码, 在计算机行 ...
- 使用crontab定时执行脚本时别忘了输出重定向>
原文:https://blog.csdn.net/solmyr_biti/article/details/50683279 -------------------------------------- ...
- Selenium在IE浏览器中执行脚本时输入字符太慢问题解决方法
问题描述: IE浏览器中执行Selenium脚本的时候发现输入文本的时候总是一个字符一个字符的输入,并且输入每个字符之间都隔几秒. 解决方案: 将使用的IE浏览器驱动由64位的换成32位的.
- 在pycharm中执行脚本没有报错但输出显示Redirection is not supported.
没有新式语法错误,但是输出显示Redirection is not supported.(不支持重定向) 在stockflow中找到是因为从IDE中运行脚本的原因,比如pycharm,所有IDE都提供 ...
随机推荐
- Spring学习笔记(一)—— Spring介绍及入门案例
一.Spring概述 1.1 Spring是什么 Spring是一个开源框架,是于2003年兴起的一个轻量级的Java开发框架, 由Rod Johnson 在其著作<Expert one on ...
- AJAX概述和简单使用
一.ajax概述: asynchronous javascript and xml ,用于异步的向服务器发出请求,接收数据的 一种技术. 在整个过程中:页面无刷新,不打断用户的操作: 按需要获取数据, ...
- HDU 6325 Problem G. Interstellar Travel(凸包)
题意: 给你n个点,第一个点一定是(0,0),最后一个点纵坐标yn一定是0,中间的点的横坐标一定都是在(0,xn)之间的 然后从第一个点开始飞行,每次飞到下一个点j,你花费的价值就是xi*yj-xj* ...
- highcharts去掉x轴,y轴,轴线以及刻度
var chart = null; $.getJSON('https://data.jianshukeji.com/jsonp?filename=json/usdeur.json&callba ...
- 关于jstl taglib的错误 Can not find the tag library descriptor for “http://java.sun.com/jstl/core”
在查了N个帖子之后,决定记录一下关于jstl taglib的配置方法. 首先我遇到的错误是: Can not find the tag library descriptor for "htt ...
- C++ GUI Qt4编程(11)-5.1hexSpinbox
1. hexspinbox.cpp /* * The spin box supports integer values but can be extended to use different str ...
- 转 .net数据类型
.net 数据类型 short s=0; s = s + 1; 和short s=0; s += 1; 这两个表达式有什么区别,会报什么错误? 有区别吗??大家要想想呢还是要测试一下啊,我选择测试 ...
- rancher初级(搭建+基本操作+web应用部署)
Rancher搭建 首先rancher需要安装了docker的linux环境,我的系统版本为 在docker的基础上启动rancher服务器,Rancher 服务器是一个 Docker image,所 ...
- python 爬虫系列07-天气爬虫
看天气 import requests from bs4 import BeautifulSoup ALL_DATA = [] def parse_page(url): headers = { 'Us ...
- baidumapapi点线面的绘制已离线化
百度API离线化 baidumapapi2.0商用是要收费的,开发者使用也要申请个Key. 有个项目要用到点线面的绘制功能,在百度的API示例中发现有这样js封装(DrawingManager_min ...