【操作系统】Crontab运行相关问题以及解决方法
来源:互联网 发布:淘宝商城检测 编辑:程序博客网 时间:2024/05/27 01:33
Crontab运行相关问题以及解决方法 By Katana 1.mysql等语句在crontab不能执行的问题 这个是一个运维人员必定会遇到的经典问题,经常在客户端调试没有问题的脚本,到了crontab定时执行的时候就执行不了。 这是由于crontab不加载用户环境变量导致 crontab调用默认PATH是/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin或者更少,例如mysql等命令不在此路径中 解决方法: 脚本中所有的命令和工具使用绝对路径例如/usr/local/bin/mysql,或者在脚本前面执行一下profile文件:. /etc/profile即可 2.crontab执行结果不对 例如: 判断一个文件生成时间是每天18:00生成的 -rw-r--r-- 1 user user 30555594 2009-05-15 18:00 text.txt if [ `ls -al test.txt |awk ’{print $7}’` == "18:00" ] then ……………… fi 在客户端测试没有问题,可是放到crontab中,就判断不对了。 其实这还是用户环境的问题, 客户端登陆的时候会自动加载/etc/sysconfig/language(一般在/etc/profile文件中加载), 其中有的机器会设置客户端字符集: RC_LANG="en_US.ISO-8859-1" 使用env|grep LANG的结果是 LANG=en_US.ISO-8859-1 这个时候ls等命令的结果是: -rw-r--r-- 1 user user 30555594 2009-05-15 18:00 text.txt 时间在第七个字段。 当crontab自动执行的时候,字符集没有设置 使用env|grep LANG的结果是空 这个时候ls等命令的结果是: -rw-r--r-- 1 mqq mqq 12785 May 15 18:00 text.txt 时间在第八个字段,判断第七个字段为时间的脚本就出错了。 解决方法: 这个时候在脚本前面加上export LANG=en_US.ISO-8859-1或者执行一下profile文件:. /etc/profile即可 3.crontab占用大量机器资源 日志服务器172.16.0.100偶尔出现crond占用了cpu非常高的情况 使用pstree查看是调用stat_day_log.sh这个脚本导致crond占用cpu过高 查看crontab的配置: */10 * * * * /usr/local/dev/Y_script/stat_day_log.sh 5 然而执行这个脚本,非常快就完成了,一点也不占用资源 而且理论上,及时脚本非常占用资源,调用它的crond也不会占用资源才对。 再次执行脚本发现,脚本有错误输出: gzip: Y.YUiS_20090602.log.gz: No such file or directory 于是想到,会不会是由于crontab没有默认tty(默认输出)导致呢? 于是加上 */10 * * * * /usr/local/dev/Y_script/stat_day_log.sh 5 2>&1 >> /usr/local/dev/Y_script/stat_day_log.log 果然问题解决了。为了确认到底是正常输出还是错误输出导致crontab僵死,进行了以下两个配置: */10 * * * * /usr/local/dev/Y_script/stat_day_log.sh 5 >> /usr/local/dev/Y_script/stat_day_log.log 还是有问题。 于是可以确认是由于crontab没有将默认错误输出重定向到指定文件导致。 这种问题也不是一定重现,只有负载很高的时候偶尔会出现(一出现就会造成机器僵死宕机)。 解决方法: 养成良好的习惯,crontab默认加上错误日志重定向,如果不需要错误日志信息,也需要加上:> /dev/null 2>&1
本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)
- 【操作系统】Crontab运行相关问题以及解决方法
- crontab不运行问题
- crontab 运行命令问题
- Crontab整点运行问题
- 虚拟主机wdcp的相关问题以及解决方法
- ext4.1 tree drop 相关问题以及解决方法、
- 转载hadoop实践路上异常问题以及相关解决方法记录
- 跨域请求问题以及相关解决方法之JSONP
- linux服务器管理相关问题(三)--使用crontab
- crontab运行JAVA程序的字符集问题
- crontab运行java程序的问题
- crontab运行可能会遇到的问题
- expect脚本文件在crontab下无法运行的解决方法
- crontab 相关
- PHP写linux的shell脚本,以及crontab运行方法
- mysql问题以及解决方法
- 问题以及解决方法
- mini2440内核停在booting the kernel问题以及无法运行linuxrc问题的解决方法
- 数据库
- mysql和orcal学习笔记
- 【SQL 2005 异常之一解决方案】类别不支持集合(或类别对象为远程对象) (异常来自 HRESULT:0x80040110 (CLASS_E_NOAGGREGATION)) (Microsoft.SqlServer.SqlTools.VSIntegra
- 一个分号引发的血案
- Oracle9i LogMiner日志分析工具入门
- 【操作系统】Crontab运行相关问题以及解决方法
- datagridview中 ContextMenuStrip的使用
- 浙大 Windows7 IPv6 代理上网
- 火狐浏览器曝出“魔镜”高危漏洞 木马可被“拖”入电脑
- VLC中的directx.c文件,YUV->RGB硬件加速
- sql server 2005无法安装 报表服务器
- 来自平凡生活的用户体验设计启示
- struts2 + jquery + json
- DNS服务器工作原理