1. 程式人生 > >Linux 定時任務執行Shell指令碼【CentOS6.8】

Linux 定時任務執行Shell指令碼【CentOS6.8】

本人一直從事Windows系統的開發,最近一年基本上都在研究.NET跨平臺相關的知識,最近遇到一個棘手的問題,由於前期技術選型的時候說採用WebAPI的方式進行部署,我當時就答應了,到最後上線的時候突然發現一個逆天的功能,需要通過API修改系統的IP,子網掩碼,閘道器,設定完成以後系統需要重啟

負責開發的同事完全按照windows上的程式設計模式,使用Windows內部函式修改這些引數並完成重啟,但是在Linux上就行不通了,最後想了一個辦法,設定一個定時計劃,動態監控配置檔案的方式,通過WebAPI寫一個Shell檔案,然後Linux通過定時任務檢測改檔案,如果該檔案存在,就執行該檔案,執行成功以後刪除該檔案,然後再重新整理網路,重啟電腦,廢話不多說,具體實現如下:

編寫定時任務執行指令碼

initial.sh

#!/etc/bash
folder="/var/www/default"
file="/var/www/default/network.sh"
if [ ! -d "$folder" ]; then
mkdir "$folder"
fi
echo "----------->" >> "/var/www/default/log.log"
if [  -f "$file" ]; then
echo $file
source "$file"
echo "==========>" >> "/var/www/default/log.log"
rm -rf $file fi

network.sh[該檔案由API寫入]

#!/bin/sh
# BY kerryhu
# MAIL:[email protected]
#這是一個自動修改網路ip、掩碼、閘道器的指令碼。
#使用方法ip_mod IP_MOD、MASK_MOD、GW_MOD
#例:ip_mod 10.10.10.5 255.255.255.0 10.10.10.1
#其中IP_MOD、MASK_MOD、GW_MOD是要改成的ip、mask、gw
#設定變數
PROC=/bin/sed
IP_PATH=/etc/sysconfig/network-scripts/ifcfg-eth1
GW_PATH=/etc/sysconfig/network
IP_PRI=`grep -i ipaddr $IP_PATH
|awk -F "=" '{printf $2 }'` MASK_PRI=`grep -i netmask $IP_PATH|awk -F "=" '{printf $2}'` GW_PRI=`grep -i GATEWAY $GW_PATH|awk -F "=" '{printf $2}'` IP_MOD=192.168.1.214 MASK_MOD=255.255.0.0 GW_MOD=192.168.1.1 #修改ip、mask、gw $PROC -i "s/$IP_PRI/$IP_MOD/g" $IP_PATH $PROC -i "s/$MASK_PRI/$MASK_MOD/g" $IP_PATH $PROC -i "s/$GW_PRI/$GW_MOD/g" $GW_PATH #重啟網絡卡 /etc/rc.d/init.d/network restart

設定定時任務

crontab -e
## For excuting scripts.sh every 3 seconds##on 201692017:41:53
*/1 * * * * /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 5 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 10 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 15 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 20 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 25 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 30 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 35 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 40 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 45 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 50 &&  /bin/bash  /var/www/default/initial.sh
*/1 * * * * sleep 55 &&  /bin/bash  /var/www/default/initial.sh
#-----------------------------------------------------------------
service crond start

注意事項

permission denied

etc/bash: bad interpreter:

如何通過秒設定定時任務?

crontab -e
## For excuting scripts.sh every 3 seconds##on 2014-10-15
*/1 * * * *  /home/somedir/scripts.sh
*/1 * * * * sleep 3 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 6 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 9 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 12 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 15 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 18 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 21 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 24 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 27 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 30 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 33 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 36 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 39 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 42 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 45 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 48 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 51 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 54 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 57 &&  /home/somedir/scripts.sh
#-----------------------------------------------------------------

相關推薦

Linux 定時任務執行Shell指令碼CentOS6.8

本人一直從事Windows系統的開發,最近一年基本上都在研究.NET跨平臺相關的知識,最近遇到一個棘手的問題,由於前期技術選型的時候說採用WebAPI的方式進行部署,我當時就答應了,到最後上線的時候突然發現一個逆天的功能,需要通過API修改系統的IP,子網掩碼,

通過Linux定時任務shell指令碼檢測RabbitMQ消費者執行狀況以及自啟

目的:防止RabbitMQ消費者程序中斷影響業務 1、編寫 rabbitmq_consumer.php消費者檔案 (關於消費者和生產者請移步:https://blog.csdn.net/why444216978/article/details/84987011) 2、編寫she

Linux定時任務執行PHP指令碼每天更改資料庫

1、檢查是否開啟crond(預設已安裝)              service crond status              ser

關於linux定時任務shell指令碼——實現遠端資料庫備份

一、常用的命令如下:1、編輯一個新的crontab任務    crontab -e2、檢視編寫後的crontab任務    crontab -l3、重啟contab任務服務    service crond restart4、檢視contab任務狀態    service c

linux定時任務執行python腳本

rsyslog default and conf home 查看 day clean oom 企業微信應用--值日生,每周一三五發消息給同學打掃衛生。腳本利用linux的定時任務crontab來執行,每天跑一遍。 1.開啟crontab日誌。 crontab默認不開啟日誌,

定時任務操作shell指令碼

#crontab的介紹 linux內建的cron程序能幫我們實現這些需求,cron搭配shell指令碼,非常複雜的指令也沒有問題。 cron介紹 我們經常使用的是crontab命令是cron tabl

Linux定時任務執行crontab

在Linux中,可以使用crontbab指定定時任務。 使用命令crontab -e即可編輯crontab,在裡面新增需要的定時任務。使用者的定時任務檔案為 /var/spool/cron/使用者名稱 ,crontab -e命令將相當於vim /var/spo

crontab 定時任務執行 python 指令碼提示三方模組找不到

問題描述: linux 命令列手動執行 python 指令碼,任務執行沒有任何成功;將 python 指令碼執行新增到 crontab 定時任務中執行,提示第三方模組找不到? 解決方法: (1)在 linux 命令列輸入 python 命令 (2)在 python 可

Windows建立定時任務執行Python指令碼

在windows 中如何定時執行一個python指令碼? 解決方法是:使用windows 的“任務計劃程式” 第一步:在 計算器右擊 --> 選擇管理 進入如下介面: 第二步:選擇 系統工具 -->  任務計劃程式 ,點選右側的  “建立基本任務”,進入

shell指令碼符號4萬用字元的使用

這篇部落格介紹1、萬用字元的使用,用於對“檔案”的檢索2、“[ ]”和“[[ ]]” 的其它用法(作為test命令的簡寫) 萬用字元: *  ?  [ ]     [ !  ]    [^   ]正文:一:使用元字元進行模式匹配,搜尋檔案    ⒈ 按照匹配的字元數量,這些萬

linux 定時執行shell指令碼 定時任務

在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘. 在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在

linux定時執行shell指令碼

寫一個shell指令碼,定時執行簡單示例 很多時候我們有希望伺服器定時去執行一個指令碼來觸發一個操作,比如說定時去備份伺服器資料、資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 Shell俗稱殼,類似於DOS下的command和後來的cmd.exe。它接收使用者

使用crontab,讓linux定時執行shell指令碼

使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都執行 入門 # crontab –e 這樣可以已編輯模式打開個人的crontab配置檔案,然後加入一下這行: 0 0 * * * /home

一個簡單的linux下設定定時執行shell指令碼的示例

很多時候我們有希望伺服器定時去執行一個指令碼來觸發一個操作,比如說定時去備份伺服器資料、資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 shell Shell俗稱殼,類似於DOS下的command和後來的cmd.exe。它接收使用者命令,然後呼叫相應的應用程式。作為命

MAC OS和Linux下的crontab實現定時任務(執行python等指令碼)

前言 crontab命令常見於Unix和類Unix的作業系統中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀指令,並將其存入到“crontab”檔案中,以供之後讀取和執行。 使用方法 1.crontab -e 編輯自定義自己的任務,儲存退出後自動新增到cron

Linux定時任務Crontab執行PHP指令碼

http://blog.chinaunix.net/uid-7552018-id-182133.html crontab執行php指令碼 http://www.jb51.net/article/29136.htm  

linux 定時執行shell指令碼

在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘. 在oracle 中可以利用dbms_job包定時執行pl/sql、sql過程,在像備份等

LINUX定時執行SHELL指令碼實現DB2資料庫操作,crontab無法正常識別執行

LINUX定時執行SHELL指令碼實現DB2資料庫操作。首先建立shell指令碼[注意:必須要設定匯出一下相關命令(DB2)的環境變數,否則crontab無法正常識別執行]。然後使用crontab建立定時任務。

LinuxLinux定時任務Crontab命令詳解

星期幾 ima 默認 定時 最好 表示 時間 path 配置文件 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以, Lin

shell正常運行,加入定時任務執行失敗

執行 code 命令 ifconfig post 定時 正常 pos ont 例如簡單的ifconfig命令,在shell中運行成功,但是在crontab 中執行失敗。 定位原因:環境變量 解決方案: whereis ifconfig 然後在shell中加入: PATH