Linux實現(xiàn)用腳本添加crontab定時任務
Linux腳本添加crontab定時任務
通常
我們常用的添加crontab定時任務方式是,手動執(zhí)行命令:
crontab -e
然后將任務腳本手動添加到文件中
實際
實際中我們常常想在執(zhí)行程序啟動腳本時,自動添加crontab定時任務,例如通過crontab任務周期性刪除程序產(chǎn)生的日志等等,我們可以使用如下腳本,通過腳本自動添加我們的crontab定時任務。
將如下腳本修改后,跟隨程序啟動時執(zhí)行即可。
#!/bin/sh #日志清理腳本 delete_log.sh替換成你的日志清理腳本,或者參考另一篇博客《Linux中用定時任務清理日志》 delete_log_sh_path=/data/delete_log.sh # crontab腳本 每天凌晨1點執(zhí)行任務 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日志定時清理任務已存在,請勿重復執(zhí)行!!!" exit 1 fi # 添加任務 # 將已有任務輸出到臨時文件 crontab -l > cron.txt # 將新任務追加到文件結(jié)尾 echo "${cron_command}" >> cron.txt # 加載定時任務 crontab cron.txt # 刪除臨時文件 rm -f cron.txt crontab -l echo "cpp日志定時清理任務已創(chuàng)建" exit 0
Linux crontab定時任務中文亂碼
問題現(xiàn)象
直接執(zhí)行腳本中文無亂碼,使用定時任務后中文變?yōu)?????/p>
問題造成原圖
crontab啟動的任務沒有獲取系統(tǒng)的環(huán)境變量,導致中文亂碼
解決辦法
在執(zhí)行的腳步中添加編碼方式或者添加對應的環(huán)境變量
如:
1、在腳本開頭增加:
#!/bin/bash . /etc/profile . ~/.bash_profile export LANG="en_US.UTF-8"
2、/usr/bin/java -Dfile.encoding=UTF-8 -jar ALDTool.jar
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Linux環(huán)境搭建之安裝/配置Tomcat的方法
本篇文章主要介紹了Linux環(huán)境搭建之安裝/配置Tomcat的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06haproxy+keepalived實現(xiàn)高可用負載均衡(理論篇)
軟件負載均衡一般通過兩種方式來實現(xiàn):基于操作系統(tǒng)的軟負載實現(xiàn)和基于第三方應用的軟負載實現(xiàn)。LVS就是基于Linux操作系統(tǒng)實現(xiàn)的一種軟負載,HAProxy就是開源的并且基于第三應用實現(xiàn)的軟負載2013-01-01telnet?Connection?refused端口不通如何處理
本文介紹了telnet命令的基本用途及排查telnet連接拒絕的處理思路,telnet主要用于測試網(wǎng)絡連接,如遇到連接問題,可能是由于防火墻未開放或目的主機服務未啟動,文章通過實際例子解釋了telnet命令的作用,并提供了解決網(wǎng)絡連接問題的方法2024-10-10