Linux实现用脚本添加crontab定时任务

 更新时间:2024年06月18日 10:51:05   作者:fangyang079  
这篇文章主要介绍了Linux实现用脚本添加crontab定时任务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Linux脚本添加crontab定时任务

通常

我们常用的添加crontab定时任务方式是,手动执行命令:

crontab -e

然后将任务脚本手动添加到文件中

实际

实际中我们常常想在执行程序启动脚本时,自动添加crontab定时任务,例如通过crontab任务周期性删除程序产生的日志等等,我们可以使用如下脚本,通过脚本自动添加我们的crontab定时任务。

将如下脚本修改后,跟随程序启动时执行即可。

#!/bin/sh

#日志清理脚本 delete_log.sh替换成你的日志清理脚本,或者参考另一篇博客《Linux中用定时任务清理日志》
delete_log_sh_path=/data/delete_log.sh

# crontab脚本 每天凌晨1点执行任务
cron_command="0 1 * * * /bin/bash ${delete_log_sh_path} >/dev/null 2>&1"

# 判断定时任务是否存在
existing_job=$(crontab -l | grep "${delete_log_sh_path}")
if [ -n "${existing_job}" ]; then
    echo "cpp日志定时清理任务已存在,请勿重复执行!!!"
    exit 1
fi

# 添加任务
# 将已有任务输出到临时文件
crontab -l > cron.txt
# 将新任务追加到文件结尾
echo "${cron_command}" >> cron.txt
# 加载定时任务
crontab cron.txt
# 删除临时文件
rm -f cron.txt

crontab -l
echo "cpp日志定时清理任务已创建"

exit 0

Linux crontab定时任务中文乱码

问题现象

直接执行脚本中文无乱码,使用定时任务后中文变为???。

问题造成原图

crontab启动的任务没有获取系统的环境变量,导致中文乱码

解决办法

在执行的脚步中添加编码方式或者添加对应的环境变量

如:

1、在脚本开头增加:

 #!/bin/bash
. /etc/profile
. ~/.bash_profile

 export LANG="en_US.UTF-8"

2、/usr/bin/java -Dfile.encoding=UTF-8 -jar ALDTool.jar

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux下用dnsmasq做dns cache server的配置方法

    Linux下用dnsmasq做dns cache server的配置方法

    最近国外的服务器本地DNS总是出故障,闪断一会儿都会影响业务。于是在机房里找了两台Server,安装上keepalived和dnsmasq实际本地的DNS缓存
    2014-08-08
  • Linux 服务器同步 Rsync同步服务器文件

    Linux 服务器同步 Rsync同步服务器文件

    服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服 务器来提供下载服务。
    2009-08-08
  • CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下
    2013-06-06
  • linux之防火墙firewall解读

    linux之防火墙firewall解读

    本文介绍了如何使用`firewall-cmd`命令管理防火墙,配置Docker0服务到受信任连接,并详细解释了防火墙区域选项、IP集选项、ICMP类型选项、服务选项等
    2025-01-01
  • Linux下如何查杀stopped进程详解

    Linux下如何查杀stopped进程详解

    这篇文章主要给大家介绍了关于Linux下如何查杀stopped进程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用linux系统具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Apache Hadoop版本详解

    Apache Hadoop版本详解

    本文总结了ApacheHadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议。感兴趣的朋友一起看看吧
    2017-09-09
  • 探索Linux内核:Kconfig的秘密

    探索Linux内核:Kconfig的秘密

    今天小编就为大家分享一篇关于探索Linux内核:Kconfig的秘密,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • CentOS7 curl版本升级过程

    CentOS7 curl版本升级过程

    文章主要介绍了如何在CentOS 6.8系统上升级curl到最新版本7.53.1,首先查看当前curl版本,然后更新ca-bundle,新增repo源,最后使用命令直接更新curl并验证版本
    2026-01-01
  • Linux ssh远程连接断开问题处理办法解决

    Linux ssh远程连接断开问题处理办法解决

    本篇文章主要介绍了Linux ssh远程连接断开问题处理办法解决,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • Linux echo命令使用解读(在终端输出文本)

    Linux echo命令使用解读(在终端输出文本)

    本文详细解析了Linux下echo命令的用法、常见选项及特殊字符支持,说明其在输出文本、脚本编程和系统管理中的重要作用,并介绍了实际应用和注意事项
    2025-10-10

最新评论