Linux實現(xiàn)用腳本添加crontab定時任務(wù)
Linux腳本添加crontab定時任務(wù)
通常
我們常用的添加crontab定時任務(wù)方式是,手動執(zhí)行命令:
crontab -e
然后將任務(wù)腳本手動添加到文件中
實際
實際中我們常常想在執(zhí)行程序啟動腳本時,自動添加crontab定時任務(wù),例如通過crontab任務(wù)周期性刪除程序產(chǎn)生的日志等等,我們可以使用如下腳本,通過腳本自動添加我們的crontab定時任務(wù)。
將如下腳本修改后,跟隨程序啟動時執(zhí)行即可。
#!/bin/sh
#日志清理腳本 delete_log.sh替換成你的日志清理腳本,或者參考另一篇博客《Linux中用定時任務(wù)清理日志》
delete_log_sh_path=/data/delete_log.sh
# crontab腳本 每天凌晨1點執(zhí)行任務(wù)
cron_command="0 1 * * * /bin/bash ${delete_log_sh_path} >/dev/null 2>&1"
# 判斷定時任務(wù)是否存在
existing_job=$(crontab -l | grep "${delete_log_sh_path}")
if [ -n "${existing_job}" ]; then
echo "cpp日志定時清理任務(wù)已存在,請勿重復(fù)執(zhí)行!!!"
exit 1
fi
# 添加任務(wù)
# 將已有任務(wù)輸出到臨時文件
crontab -l > cron.txt
# 將新任務(wù)追加到文件結(jié)尾
echo "${cron_command}" >> cron.txt
# 加載定時任務(wù)
crontab cron.txt
# 刪除臨時文件
rm -f cron.txt
crontab -l
echo "cpp日志定時清理任務(wù)已創(chuàng)建"
exit 0
Linux crontab定時任務(wù)中文亂碼
問題現(xiàn)象
直接執(zhí)行腳本中文無亂碼,使用定時任務(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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下用dnsmasq做dns cache server的配置方法
最近國外的服務(wù)器本地DNS總是出故障,閃斷一會兒都會影響業(yè)務(wù)。于是在機(jī)房里找了兩臺Server,安裝上keepalived和dnsmasq實際本地的DNS緩存2014-08-08
Linux 服務(wù)器同步 Rsync同步服務(wù)器文件
服務(wù)器之間常常要保持些文件或目錄的一致,比如一些大的軟件下載網(wǎng)站,它們通常使用多臺服 務(wù)器來提供下載服務(wù)。2009-08-08
CentOS 6.4安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
這篇文章主要介紹了CentOS 6.4安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)的方法,需要的朋友可以參考下2013-06-06

