如何讓指令碼定時執行

2021-09-21 00:05:12 字數 1944 閱讀 1991

一、計畫任務

1. 非root使用者建立計畫任務

crontab -u bin -e

crondtab-u bin  -l       //檢視方法

ls /var/spool/cron/ //所有計畫任務存放目錄

2. 高階crontab ,篡改乙個系統級別的計畫任務

ls /etc/cron    //按兩下tab鍵檢視

cron.d/             #系統級別的定時任務

cron.daily/         #系統每天要執行計畫任務

cron.hourly/     #系統每小時要執行計畫任務

cron.monthly/   #系統每月要執行計畫任務

cron.weekly/    #系統每週要執行計畫任務

find /etc/cron*  //檢視可以新增系統級別的計畫任務

案例:新增系統級別的木馬程式

vim /etc/cron.daily/tmpwatch  //在定時刪除/tmp目錄下臨時檔案的指令碼最後新增

echo aaa

排查方法:利用md5sum ,來檢驗檔案的完整性,指令碼修改前後md5不一樣

語法:md5sum 檔案

對/etc/cron*下所有檔案都生成md5值

find /etc/cron* -type f -exec md5sum {} \; > /usr/share/file_md5.v1  // 先提前生成,如忘記,從新機器上操作

find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2  // 懷疑有問題時,再從生成

diff /tmp/file_md5.v1 /tmp/file_md5.v2                                              // 最後兩者對比

注: 1 * * * * //為每小時的第一分鐘!!!

二、開機啟動

1. /etc/rc.local     // 開機啟動指令碼中新增木馬指令碼

排查方法:顯示時,過濾掉空行

grep -v ^$ /etc/rc.local      //^$ #以空開頭以空結尾行,就空行。 -v #表示取反,顯示

注:一定要cat,不使用vim  ,因為有的黑客會故意在rc.local中新增很多空白行,在中間或最後新增乙個指令碼

2. 利用開機啟動的伺服器指令碼來載入木馬程式,例如: httpd (apache web伺服器啟動指令碼),更厲害的黑客自己寫乙個開機啟動程式

ls /etc/init.d/      // 這個目錄下的指令碼檔案,都是可以開機啟動的指令碼檔案

排查方法:

方法1:對比其他伺服器好的配置檔案 ,利用md5值做對比

方法2:檢視被黑當天生成或被修改的檔案

find /etc/init.d/ -mtime -1  // 檢視被前一天到現在被修改的檔案

三、系統命令被人替換,定乙個觸發事件

排查方法:使用 rpm檢查檔案的完整性

語法:rpm -v 軟體包的名字         // 使用 rpm檢查檔案的完整性   

rpm -vf 命令的絕對路徑   

// 使用 rpm檢查命令的完整性   

rpm -va                         // 檢視所有rpm安裝的軟體包,生成命令或檔案是否被改過

說明:s  file size     大小不一致

m mode        模式不一致 (包括許可和檔案型別)

5  md5 sum  校驗和不一致

d device       主從裝置號不匹配

l  readlink    路徑不匹配

u user          屬主不一致

g group        所屬組不一致

t mtime       修改時間不一致

定時執行php指令碼

使用php定時執行某些任務的話,可以有以下兩個方法 1.l 參考 2.使用php的相關函式 set time limit 0 ignore user abort true 這裡寫乙個死迴圈 第乙個方法是最常見的,如果php伺服器上沒有許可權去crontab,也可以找乙個自己的機器定期crontab去...

windows指令碼定時執行

linux下可以直接用cron定時任務,window下可以使用schtasks 命令代替。第一次在win7 cmd輸入 schtasks 如果出現錯誤 錯誤 無法載入列表資源 的問題 原因很簡單 點選開啟鏈結 檢視編碼 chcp 發現使用的是936中文gbk編碼 這樣 schtasks.exe qu...

如何編寫Linux定時執行shell指令碼任務

很多時候一些shell指令碼我們都希望伺服器可以自己定時的去執行,那麼以下作簡單講解 service crond start 啟動服務 service crond stop 關閉服務 service crond restart 重啟服務 service crond reload 重新載入配置 ser...