Linux計畫任務

2021-08-22 04:50:45 字數 4903 閱讀 5513

本節所講內容:

• at 定製單次執行的計畫任務

• cron定製週期性計畫任務

• 配置指令碼實現週期性任務

• 實戰:找出黑客定時執行的木馬程式

計畫任務:

at # 只能執行一次

語法:

at 時間

服務:atd 必須開啟

[root@xuegod63 ~]# systemctl status atd

atd (pid 2206) is running…

例:

echodate> /tmp/date.txt #輸入要執行的命令

^+d #按下ctrl+d 結束

也可以這樣寫

at now +10min

at查詢:

[root@xuegod63 ~]# at -l

3 2015-02-03 20:55 a root

2 2015-02-23 20:00 a root

執行成功的at計畫任務會在這個目錄下成生乙個可執行的指令碼檔案:

[root@xuegod63 ~]# ll /var/spool/at/*

-rwx—— 1 root root 3842 feb 3 20:45 /var/spool/at/a00002016a5170

-rwx—— 1 root root 3842 feb 3 20:45 /var/spool/at/a000030169e127

at任務刪除:

atrm at序列號

[root@xuegod63 ~]# atrm 2

週期性計畫任務:

配置檔案:

[root@xuegod63 ~]# vim /etc/crontab

服務:

[root@xuegod63 ~]# systemctl status crond

crond (pid 2195) is running…

針對使用者級別的計畫任務:

對於root使用者:

命令:

針對使用者級別的計畫任務:

對於root使用者:

命令:分 時 日 月 周 誰做後面的事情(使用者) 命令

每個取值範圍:

分:0-59

小時:0-23

日:1-31

月:1-12

周:0-7 0 7 都是週日

例: [root@xuegod63 ~]# crontab -e

57 20 * * * echodate> /tmp/date.txt

[root@xuegod63 ~]# date

tue feb 3 20:57:11 cst 2015

[root@xuegod63 ~]# cat /tmp/date.txt

tue feb 3 20:57:01 cst 2015

例: 特殊寫法:

1 3 9,18,22 * * /usr/bin/back.sh

1 3 9-18 * * /usr/bin/back.sh

/5 * * * /usr/bin/back.sh

使用root身份,給其它普通使用者指定crontab:

語法:crontab -u username -e/-l/-r

• 實戰:找出黑客定時執行的木馬程式

使用普通使用者寫乙個計畫任務:

引數:-u 使用者名稱

[root@xuegod63 ~]# crontab -u bin -e

no crontab for bin - using an empty one

crontab: installing new crontab

排查:

[root@xuegod63 ~]# crontab -u bin -l

1 * * * * echo aaaa

排查:所有使用者的計畫任務?

[root@xuegod63 ~]# ll /var/spool/cron/

total 8

-rw——- 1 root root 42 nov 12 10:11 bin

-rw——- 1 root root 19 nov 12 10:06 root

注:所有的計畫任務,都會在/var/spool/cron/下產生對應的檔案。

黑客:高階crontab ,篡改乙個系統級別的計畫任務

[root@xuegod63 bin]# ls /etc/cron #按兩下tab鍵

cron.d/ cron.deny cron.monthly/ cron.weekly/

cron.daily/ cron.hourly/ crontab

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

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

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

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

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

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

[root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch #在最後新增

測試執行:

[root@xuegod63 ~]# /etc/cron.daily/tmpwatch

aaaa

注:說明新增的木馬成功了。

[root@xuegod63 ~]# find /etc/cron* #檢視可以新增系統級別的計畫任務

排查:

方法1:利用md5sum ,來檢驗檔案的完整性

例: 語法:md5sum 檔案

[root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch

17856453d7325d7750309910aa64e5ca /etc/cron.daily/tmpwatch

[root@xuegod63 ~]#vim /etc/cron.daily/tmpwatch #在最後,新增一些內容

[root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch #再次檢視md5值不一樣

6152bd26fc26d623eaf9dd551b9faed8 /etc/cron.daily/tmpwatch

測試:

[root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch #在最後新增以下內容:

做對比:

做對比:

[root@xuegod63 ~]# find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2

[root@xuegod63 ~]# diff /usr/share/file_md5.v1 /usr/share/file_md5.v2 #對比

6c6

a34bbcd2c63889ad2a1ab48d751dc974 /etc/cron.daily/tmpwatch

注:如果忘提前生成/usr/share/file_md5.v1?

找一台正常的機器,生成md5值資料庫檔案。複製到咱們伺服器上,再對比。

總結:通過計畫任務執行木馬程式

1、普通計畫任務: crontab

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

技巧2: 檢視開機啟動程序

黑客:開機啟動指令碼中新增

[root@xuegod63 ~]# vim /etc/rc.local #在文件中插入以下紅色內容

echo aaaa

[root@xuegod63 ~]# /etc/rc.local #測試執行

aaaaa

[root@xuegod63 ~]# ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 dec 18 2012 /etc/rc.local -> rc.d/rc.local

touch /var/lock/subsys/local

很多空行

echo aaaaa

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

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

[root@xuegod63 ~]# grep -v ^

/etc/rc.local   # ^

/etc/rc.local   # ^

#以空開頭以空結尾行,就空行。 -v #表示取反,顯示

touch /var/lock/subsys/local

echo aaaa

黑客:利用開機啟動的伺服器指令碼來載入木馬程式

把木馬程式指令碼寫到已經存在的開機啟動服務中,例如: httpd (apache web伺服器啟動指令碼)

[root@xuegod63 ~]# ls /etc/init.d/ #這個目錄下的指令碼檔案,都是可以開機啟動的指令碼檔案

abrt-ccpp halt netstat rpcidmapd

[root@xuegod63 ~]# vim /etc/init.d/httpd # 在倒數第二行新增

測試:

更強的黑客:

自己寫乙個開機啟動程式

總結:

at 定製單次執行的計畫任務

cron定製週期性計畫任務

配置指令碼實現週期性任務

實戰:找出黑客定時執行的木馬程式

cd講課風格: 1

Linux計畫任務

1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...

Linux 計畫任務

at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...

linux計畫任務

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin se...