Linux實(shí)現(xiàn)用腳本添加crontab定時(shí)任務(wù)
Linux腳本添加crontab定時(shí)任務(wù)
通常
我們常用的添加crontab定時(shí)任務(wù)方式是,手動執(zhí)行命令:
crontab -e
然后將任務(wù)腳本手動添加到文件中
實(shí)際
實(shí)際中我們常常想在執(zhí)行程序啟動腳本時(shí),自動添加crontab定時(shí)任務(wù),例如通過crontab任務(wù)周期性刪除程序產(chǎn)生的日志等等,我們可以使用如下腳本,通過腳本自動添加我們的crontab定時(shí)任務(wù)。
將如下腳本修改后,跟隨程序啟動時(shí)執(zhí)行即可。
#!/bin/sh #日志清理腳本 delete_log.sh替換成你的日志清理腳本,或者參考另一篇博客《Linux中用定時(shí)任務(wù)清理日志》 delete_log_sh_path=/data/delete_log.sh # crontab腳本 每天凌晨1點(diǎn)執(zhí)行任務(wù) cron_command="0 1 * * * /bin/bash ${delete_log_sh_path} >/dev/null 2>&1" # 判斷定時(shí)任務(wù)是否存在 existing_job=$(crontab -l | grep "${delete_log_sh_path}") if [ -n "${existing_job}" ]; then echo "cpp日志定時(shí)清理任務(wù)已存在,請勿重復(fù)執(zhí)行!!!" exit 1 fi # 添加任務(wù) # 將已有任務(wù)輸出到臨時(shí)文件 crontab -l > cron.txt # 將新任務(wù)追加到文件結(jié)尾 echo "${cron_command}" >> cron.txt # 加載定時(shí)任務(wù) crontab cron.txt # 刪除臨時(shí)文件 rm -f cron.txt crontab -l echo "cpp日志定時(shí)清理任務(wù)已創(chuàng)建" exit 0
Linux crontab定時(shí)任務(wù)中文亂碼
問題現(xiàn)象
直接執(zhí)行腳本中文無亂碼,使用定時(shí)任務(wù)后中文變?yōu)?????/p>
問題造成原圖
crontab啟動的任務(wù)沒有獲取系統(tǒng)的環(huán)境變量,導(dǎo)致中文亂碼
解決辦法
在執(zhí)行的腳步中添加編碼方式或者添加對應(yīng)的環(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用squid搭建http和https的代理服務(wù)器設(shè)置指南
今天小編就為大家分享一篇關(guān)于使用squid搭建http和https的代理服務(wù)器設(shè)置指南,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12Linux環(huán)境搭建之安裝/配置Tomcat的方法
本篇文章主要介紹了Linux環(huán)境搭建之安裝/配置Tomcat的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06haproxy+keepalived實(shí)現(xiàn)高可用負(fù)載均衡(理論篇)
軟件負(fù)載均衡一般通過兩種方式來實(shí)現(xiàn):基于操作系統(tǒng)的軟負(fù)載實(shí)現(xiàn)和基于第三方應(yīng)用的軟負(fù)載實(shí)現(xiàn)。LVS就是基于Linux操作系統(tǒng)實(shí)現(xiàn)的一種軟負(fù)載,HAProxy就是開源的并且基于第三應(yīng)用實(shí)現(xiàn)的軟負(fù)載2013-01-01linux 定時(shí)休眠的實(shí)現(xiàn)思路
這篇文章主要介紹了linux 定時(shí)休眠的實(shí)現(xiàn)思路,休眠的類型有三種類型,文章對每種類型介紹的都很詳細(xì),需要的朋友可以參考下2018-07-07服務(wù)器間如何實(shí)現(xiàn)scp免密文件傳輸
文章介紹了如何在本地電腦或源服務(wù)器上生成SSH密鑰,并將其復(fù)制到遠(yuǎn)程服務(wù)器上,以實(shí)現(xiàn)免密碼登錄,此外,還介紹了如何使用SCP命令在本地和遠(yuǎn)程服務(wù)器之間傳輸文件2025-02-02telnet?Connection?refused端口不通如何處理
本文介紹了telnet命令的基本用途及排查telnet連接拒絕的處理思路,telnet主要用于測試網(wǎng)絡(luò)連接,如遇到連接問題,可能是由于防火墻未開放或目的主機(jī)服務(wù)未啟動,文章通過實(shí)際例子解釋了telnet命令的作用,并提供了解決網(wǎng)絡(luò)連接問題的方法2024-10-10