linux计划任务执行脚本显示乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux计划任务执行脚本显示乱码相关的知识,希望对你有一定的参考价值。

我用php写了一个导数据脚本,从sqlserver库中取出数据 导入到mysql数据库中,中间对汉字进行了转码。当手动执行脚本的时候,一切正常,导入到数据库中也没有乱码出现。但是把脚本挂在crontab上自动执行的时候中文都变成了乱码(中文显示都是??),有哪位大牛知道是什么原因啊。

我在脚本中用echo打印转码后的字符串显示是正常中文,放在计划任务上输出到日志中显示就是乱码,实在是没辙了,求助各位大神们指导一下

参考技术A 要看你操作系统本来的编码格式和你脚本的编码格式是否一致,不一致的话在脚本前面制定一下编码格式追问

请问下怎么在脚本签名制定编码格式?
或者怎么修改操作系统本来的编码格式呢?

追答

php不知道,python在脚本开头加一句:# -*- coding: utf-8 -*-类似的话

Linux基础学习-crond系统计划任务

系统计划任务

大部分系统管理工作都是通过定期自动执行某个脚本来完成的,那么如何定期执行某个脚本,从而实现运维的自动化,这就要借助Linux的cron功能了.

计划任务分为一次性计划任务和周期性计划任务.

  • 一次性计划任务
    • 每晚11店30分开启网站服务.
  • 周期性计划任务
    • 每周一的凌晨3点30分把/var/www/html目录打包备份为backup.tar.gz

顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求,可以使用at命令实现.

如果你的Linux没有此命令可以使用yum install at -y来安装.

[[email protected] ~]# at 23:30
at> systemctl restart httpd
at> <EOT>
at > 此处同时按下Ctrl + D组合键来结束编写计划任务

//查看已经设置好但还未执行的计划任务
[[email protected] ~]# at -l
1   Fri Aug 17 23:30:00 2018 a root

//可以使用atrm任务序号删除
[[email protected] ~]# atrm 1
[[email protected] ~]# at -l

如果希望Linux能够周期性地、有规律地执行某些具体的任务,那么可以使用crond服务再合适不过了.

如果你的Linux没有此命令可以使用yum install cronie -y来安装.

选项 解释
crontab -e 创建、编辑计划任务
crontab -l 查看当前的计划任务
crontab -r 删除某条计划任务
crontab -u 编辑其他人的计划任务

注意:此命令使用编辑的是/var/spool/cron/username文件.

此命令记忆口诀 =="分、时、日、月、星期 命令"== 请牢记!!!

字段 说明
取值0-59的整数
取值0-23的任意整数
取值1-31的任意整数
取值1-12的任意整数
星期 取值为0-7,其中0与7均为星期日
命令 要执行的命令或程序脚本
//每周一、三、五的凌晨3点30分打包/var/www/html目录
[[email protected] ~]# crontab -e
crontab: installing new crontab
[[email protected] ~]# crontab -l
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
30 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /var/www/html

记忆练习示例

00 02 * * * ls  //每天的凌晨2点执行ls
00 02 1 * * ls  //每月1号凌晨2点执行ls
00 02 14 2 * ls //每年的2月的14号凌晨2点执行ls
00 02 * * 7 ls  //每周日凌晨2点执行ls
00 02 * 6 5 ls  //每年6月份周5的凌晨2点执行ls
00 02 14 * 7 ls //每月周日或14号凌晨2点执行
00 02 14 2 7 ls //每年2月14号或周日凌晨2点执行
*  02 * * * ls  //每天凌晨2点的每分钟执行
* * 14 2 * ls   //每年2月份14号每分钟执行
* * * * * ls    //每分钟执行
*/5 * * * * ls  //每5分钟执行
00 02 * 1,5,8 * ls //每年1,5,8月的每天凌晨2点执行
00 02 1-8 * * ls //每月的1-8号凌晨2点执行

//这里需要注意的是分字段必须要求数值,不能为空或者*号
//日和星期字段不能同时使用,否则会发生冲突

//每周一到周五凌晨1点清空/tmp目录内的所有文件
[[email protected] ~]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
[[email protected] ~]# crontab -l
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

以上是关于linux计划任务执行脚本显示乱码的主要内容,如果未能解决你的问题,请参考以下文章

linux中计划任务执行脚本

Linux中计划任务执行脚本crontab-简洁版

任务计划的 Powershell 脚本不显示消息框

Linux计划任务 定时任务 Crond 配置详解 crond计划任务调试 sh -x 详解 JAVA脚本环境变量定义

如何设置PowerShell脚本定时执行

windows怎么定时执行脚本