crontab java 乱码_crontab 任务程序执行乱码的问题
今天碰到一个坑爹的问题,定时用php程序从远程的mssql读取数据,并写入到mysql中,手动用php执行程序的时候,程序运行没有问题,但当用crontab任务定时执行php程序的时候就出问题了,插入mysql数据中文乱码。
刚开始以为是编码的问题,调了mysql的编码,调了linux系统的编码,发现都不行。通过各种搜索才知道,原来手动运行与crontab任务运行的环境是不同的。
环境变量相关配置文件
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的设置文件中搜集shell的设置。
/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时及每次打开新的shell时,该该文件被读。
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。
/etc/profile是全局性的功能,其中设置的变量作用于所有用户,~/.bash_profile中设置的变量能继承/etc/profile中的变量并作用于用户。
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。
大家都知道crontab是个好东东,可以定时执行一些任务,帮助你监控系统状况,帮助你每天重复的做一些机械的事情。但是crontab有一个坏毛病,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错
一般crontab无法运行的问题都是由环境变量在crontab中不一定可识别引起的。
在运行crontab的时候,是non_login方式调用程序的,此时~/.bash_profile并不会被提前调用。所以,crontab的运行环境相对于login方式进入bash运行的环境来说小得多。如果程序涉及~/.bash_profile使用的环境变量,那么,部分在login方式可以正常运行的程序在crontab下就无法运行。
所以解决办法就是用以下命令:source ~/.bashrc && cd /root && 你要执行的命令
crontab java 乱码_crontab 任务程序执行乱码的问题相关推荐
- java 中文乱码_好程序员Java学习路线分享如何处理中文参数
好程序员Java学习路线分享如何处理中文参数,为什么表单中会产生中文乱码. 好程序员Java培训 产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个 ...
- java程序出现乱码的原因
Java程序出现乱码的原因有以下几种可能: 编码不一致:Java程序使用的编码与当前系统或其他应用程序使用的编码不一致,导致字符无法正确显示. 字符集不支持:Java程序使用的字符集不支持某些特殊字符 ...
- Linux下Java程序中文乱码问题研究
Linux下Java程序中文乱码问题研究 摘 要:在一个项目的开发中,我用linux内核源代码和busybox源代码自己编译打造的操作系统mylinux 1.0 ,服务器是我用java语言自己编写的 ...
- ubuntu下eclipse打开window下的java文件,注释内容为乱码,解决方法
2019独角兽企业重金招聘Python工程师标准>>> 今天打开了以前的工程,想看看以前写的代码,打开后发现以前的java源文件的注释变成了乱码,于是在google上开始了搜索,得到 ...
- java中byte, iso-8859-1, UTF-8,乱码的根源
本文作者:@Ryan Miao 本文链接:https://www.cnblogs.com/woshimrf/p/java-utf8-iso-charset.html 版权声明: 本博客所有文章除特别声 ...
- java怎么解决页面乱码问题_java页面中文乱码的解决办法
骚年啊,资源文件名不要有中文啊,这可是常识啊 而且文件名不要有空格,不然容易悲剧 ######回复 @汪兴 : 有一个办法规避,就是上传的文件名更名为hash,实际上很多网站都这么做的,最终在页面上的 ...
- 由web程序出现乱码开始挖掘(Bom头、字符集与乱码)
从第一次开始写web程序,自己还有身边同事开发出现乱码情况基本都没有消停过.估计以后还会一样继续. 这么些年,不断修修改改,也总结也归纳.程序从asp,asp.net,jsp,php,服务器从wind ...
- java jar 源码乱码,java使用jar包时出现乱码的解决方法
java使用jar包时出现乱码的解决方法 发布时间:2020-06-17 17:06:29 来源:亿速云 阅读:105 作者:元一 jar包是什么: jar(Java Archive,Java归档文件 ...
- 三、Java Web中出现的一些乱码问题总结(详解)
一.response.getWriter().write()和 response.getWriter().print()的区别 response.getWriter()返回的是PrintWriter, ...
最新文章
- TensorFlow(9)(项目)人马图像分类(卷积神经网络)
- Centos6.5更换163源 epel源
- SimulatorXcode模拟器如何使用PC键盘进行输入
- 摘录HTTP头部信息的注释
- 两届诺贝尔文学奖得主将同时公布
- 【Kafka】kafka zk下注册的信息 get /brokers/ids/1 “host“:null “port“:-1
- 计算机专业大学排名_2020全国计算机专业大学排名
- 【路径规划】基于狼群算法之三维路径规划matlab源码
- doc 问卷调查模板表_问卷调查生成word 调查问卷模板word
- 谷歌浏览器误删临时用户恢复书签
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- scala学习之旅(十三):隐式转换和隐式参数
- vs2008简体中文正式版下载
- nyoj-891-找点
- 计算机常用程序在DOS中的英文名
- FLUENT中VOF模型的仿真流程
- CocoStudio UI 编辑器的使用
- PDF文件怎么在线压缩?教你在线压缩的方法
- 大数据晋级之路(5)Hadoop,Spark,Storm综合比较
- shu mei pai
热门文章
- 【nginx】nginx 常用命令
- 【高并发】java JUC中的Semaphore(信号量)
- 【Zookeeper】cnxn.saslServer is null cnxn object did not init its saslServer properly
- IllegalStateException: Error reading delta file hdfs://xxx/spark/xx/state/0/11/1.delta
- 【Docker】Docker 启动prometheus报错 parsing YAML file /etc/prometheus/prometheus.yml: yaml: unmarshal
- kafka报错:Error writing out kafka.log:type=Log,name=LogStartOffset,topic=xx EofException
- ibatis中#和$符号的区别
- 发送邮件 ajax,使用Ajax发送电子邮件
- Java基本数据类型及其包装类
- 基本功:超全面 IO 流教程,小白也能看懂