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下Nginx+Tomcat整合的安装与配置

    详解Linux下Nginx+Tomcat整合的安装与配置

    本篇文章主要介绍了Linux下Nginx+Tomcat整合的安装与配置,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • 基于Centos7 部署Varnish缓存代理服务器

    基于Centos7 部署Varnish缓存代理服务器

    这篇文章主要介绍了基于Centos7 部署Varnish缓存代理服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Linux服务器nginx访问日志里出现大量http 400错误的请求分析

    Linux服务器nginx访问日志里出现大量http 400错误的请求分析

    这篇文章主要介绍了Linux服务器nginx访问日志里出现大量http 400错误的请求分析,需要的朋友可以参考下
    2014-12-12
  • apache服务器全局配置详解(全)

    apache服务器全局配置详解(全)

    apache服务器全局配置详解,介绍很多关于服务器相关的一些知识,用apache架设服务器的朋友可以收藏下
    2013-03-03
  • 在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    这篇文章主要介绍了在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux防火墙iptables添加白名单方式

    Linux防火墙iptables添加白名单方式

    这篇文章主要介绍了Linux防火墙iptables添加白名单方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Linux服务器如何使用网络代理

    Linux服务器如何使用网络代理

    这篇文章主要介绍了Linux服务器如何使用网络代理问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 制作centos基础镜像的方法

    制作centos基础镜像的方法

    这篇文章主要介绍了制作centos基础镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Linux中部署MeterSphere实现远程访问

    Linux中部署MeterSphere实现远程访问

    MeterSphere是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,
    本文介绍Linux中部署MeterSphere实现远程访问MeterSphere界面
    2023-10-10
  • Apache虚拟主机VirtualHost配置项详解

    Apache虚拟主机VirtualHost配置项详解

    在Apache中,VirtualHost容器用于定义一个虚拟主机的配置,它允许在单一的物理服务器上托管多个不同的网站,每个网站可以有自己的域名、文档根目录、错误日志等,这篇文章主要介绍了Apache虚拟主机VirtualHost配置项详解,需要的朋友可以参考下
    2024-07-07

最新评论