Linux下的crontab定时循环操作

luozhangwen 2010-11-10 09:44:33
run_lzw.sh

#!/bin/bash
WORK_DIR="/opt/pub/software/lzw"
LOG_FILE="${WORK_DIR}/lzw.log"
AUTO_EXEC_CONF="${WORK_DIR}/run_lzw.tmp"
AUTO_EXEC_CONF_BAK="${WORK_DIR}/run_lzw.tmp.bak"
AUTO_EXEC_FILENAME="lzw.sh"

AUTO_EXEC_RULE="25 9 * * * ${WORK_DIR}/${AUTO_EXEC_FILENAME}";

function registerTimer()
{
crontab -u root -l | grep -v "^#" > ${AUTO_EXEC_CONF_BAK} 2>&1
tag=`cat ${AUTO_EXEC_CONF_BAK} | grep -v "^#" | grep -ic "${AUTO_EXEC_FILENAME}"`
if [ ${tag} -ge 1 ];then
sed '/'${AUTO_EXEC_FILENAME}'/d' ${AUTO_EXEC_CONF_BAK} >${AUTO_EXEC_CONF}
else
cat ${AUTO_EXEC_CONF_BAK} > ${AUTO_EXEC_CONF}
fi;
echo "${AUTO_EXEC_RULE}" >>${AUTO_EXEC_CONF}
crontab -u root ${AUTO_EXEC_CONF} >> ${LOG_FILE} 2>&1
result=$?
if [ ${result} != 0 ]; then
echo "the run_lzw.sh exec error" >> ${LOG_FILE}
return 1;
fi;
/etc/init.d/cron restart >> ${LOG_FILE} 2>&1
}
function unRegisterTimer()
{
crontab -u root -l | grep -v "^#" > ${AUTO_EXEC_CONF_BAK} 2>&1
tag=`cat ${AUTO_EXEC_CONF_BAK} | grep -v "^#" | grep -ic "${AUTO_EXEC_FILENAME}"`
if [ ${tag} -ge 1 ];then
sed '/'${AUTO_EXEC_FILENAME}'/d' ${AUTO_EXEC_CONF_BAK} >${AUTO_EXEC_CONF}
else
cat ${AUTO_EXEC_CONF_BAK} > ${AUTO_EXEC_CONF}
fi;

crontab -u root ${AUTO_EXEC_CONF} >> ${LOG_FILE} 2>&1
result=$?
if [ ${result} != 0 ]; then
echo "the run_lzw.sh exec error" >> ${LOG_FILE}
return 1;
fi;
/etc/init.d/cron restart >> ${LOG_FILE} 2>&1
}
function main()
{
if [ "$1" = "-r" ];then
registerTimer
elif [ "$1" = "-u" ]; then
unRegisterTimer
else
echo "please input -r -u";
fi;

}
main $@

...全文
61 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
luozhangwen 2010-11-10
  • 打赏
  • 举报
回复
lzw.sh

#!/bin/bash
LOG_FILE="/opt/pub/software/lzw/lzw.log"

function main()
{
ls /opt/pub/software/lzw >> ${LOG_FILE} 2>&1
}
main $@

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧