1.課程介紹部分
- 定時(shí)任務(wù)概念介紹
- 定時(shí)任務(wù)實(shí)現(xiàn)方式
- 定時(shí)任務(wù)配置應(yīng)用
- 定時(shí)任務(wù)操作練習(xí)
2.課程知識(shí)回顧
- 掌握文件權(quán)限信息
- 掌握系統(tǒng)默認(rèn)權(quán)限設(shè)置 umask
- 了解系統(tǒng)用戶相關(guān)文件 /etc/passwd /etc/shadow
- 了解系統(tǒng)用戶相關(guān)目錄 /etc/skel
- 掌握普通用戶提權(quán)方法
a 直接切換用戶 su -
b 修改文件/目錄權(quán)限 chown chmod
c 進(jìn)行用戶提權(quán) sudo visudo
d 進(jìn)行特殊權(quán)限位配置 setuid setgid 粘滯位
擴(kuò)展:
chattr +i 文件信息 --- 將一個(gè)文件上鎖
chattr -i 文件系統(tǒng) --- 將一個(gè)文件解鎖
lsattr 文件系統(tǒng) - 掌握用戶管理相關(guān)命令
3.系統(tǒng)定時(shí)任務(wù)概念 == 生活中鬧鐘
1) 時(shí)間信息有時(shí)不準(zhǔn) 時(shí)間同步操作 每過(guò)10分鐘
2) 備份數(shù)據(jù)信息 凌晨
代替人自動(dòng)完成一些任務(wù)
4.系統(tǒng)定時(shí)任務(wù)實(shí)現(xiàn)方法:
1). 定時(shí)任務(wù)軟件:cronie *****
2). 定時(shí)任務(wù)軟件:atd 設(shè)置一次定時(shí)任務(wù),執(zhí)行一次
3). 定時(shí)任務(wù)軟件:anacron 定時(shí)時(shí)間有固定設(shè)置 每小時(shí) 每天 每個(gè)月 cronie-anacron
實(shí)現(xiàn)定時(shí)任務(wù)配置
1). 系統(tǒng)默認(rèn)定時(shí)任務(wù):
cron.hourly/ --- 每小時(shí)執(zhí)行目錄中腳本文件
cron.daily/ --- 每天執(zhí)行目錄中腳本文件
cron.weekly/ --- 每周執(zhí)行目錄中腳本文件
cron.monthly/ --- 每月執(zhí)行目錄中腳本文件
vim oldboy.sh
#!/bin/bash
echo "info_$(date +%F_%T)" >/tmp/test_cron.txt
2). 用戶自定義設(shè)置定時(shí)任務(wù)
一個(gè)命令 兩個(gè)文件
crontab --- 設(shè)置和查看定時(shí)任務(wù)命令
# crontab -l --- 查看設(shè)置的定時(shí)任務(wù)
# crontab -e --- 編輯設(shè)置定時(shí)任務(wù)/語(yǔ)法檢查功能
配置文件
/var/spool/cron/root --- root用戶設(shè)置定時(shí)任務(wù)配置文件
/var/spool/cron/oldboy --- oldboy用戶設(shè)置定時(shí)任務(wù)配置文件
/var/log/cron --- 定時(shí)任務(wù)日志文件
5.定時(shí)任務(wù)如何進(jìn)行配置
準(zhǔn)備工作:
systemctl start crond
systemctl enable crond
編寫定時(shí)任務(wù):
[root@oldboyedu ~]# cat /etc/crontab --- 定時(shí)任務(wù)樣例文件
SHELL=/bin/bash 環(huán)境變量信息
PATH=/sbin:/bin:/usr/sbin:/usr/bin 環(huán)境變量信息
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
定時(shí)任務(wù)時(shí)間信息 執(zhí)行任務(wù)信息
* * * * * 命令/腳本
時(shí)間信息:
*(分) *(時(shí)) *(日) *(月) *(周)
分鐘: 0-59
小時(shí): 0-23
日期: 1-31
月份: 1-12
星期: 0-6
任務(wù)信息:
cp /etc/hosts /etc/hosts.bak
練習(xí):
-
凌晨2點(diǎn)半 將數(shù)據(jù)進(jìn)行備份
crontab -e 30 2 * * * cp /etc/hosts /etc/hosts.bak 如何驗(yàn)證定時(shí)任務(wù)功能: 01. 實(shí)時(shí)監(jiān)控定時(shí)任務(wù)日志信息 [root@oldboyedu ~]# tail -f /var/log/cron Jul 30 16:56:25 oldboyedu crontab[42580]: (root) BEGIN EDIT (root) Jul 30 16:56:38 oldboyedu crontab[42580]: (root) REPLACE (root) Jul 30 16:56:38 oldboyedu crontab[42580]: (root) END EDIT (root) 01 02 03 04 Aug 1 02:30:01 oldboyedu CROND[42950]: (root) CMD (cp /etc/host /etc/hosts.bak) 1): 編寫定時(shí)/定時(shí)任務(wù)觸發(fā) 時(shí)間信息 2): 主機(jī)名稱信息 3): 讀取什么定時(shí)任務(wù)文件信息 4): 定時(shí)任務(wù)完成了事情 02. 加快定時(shí)任務(wù)執(zhí)行 調(diào)整時(shí)間信息 PS: 調(diào)整時(shí)間盡量向后調(diào)整
-
下午3點(diǎn)40,8月6日,周日 將數(shù)據(jù)進(jìn)行備份 錯(cuò)誤題目
40 15 6 8 0 和女朋友發(fā)生小秘密 PS: 在設(shè)置時(shí)間信息時(shí), 周信息不能和日期信息一起設(shè)置
-
每隔1個(gè)小時(shí), 數(shù)據(jù)備份
/n 每隔多久執(zhí)行定時(shí)任務(wù) 間隔多久 * 每分鐘 每小時(shí) 每天 每月 每周 0 */1 * * * cp /etc/hosts /etc/hosts.01 正確 * */1 * * * cp /etc/hosts /etc/hosts.01 問(wèn)題 說(shuō)明: 每隔一小時(shí)會(huì)執(zhí)行 1:00 --- 2:00 執(zhí)行時(shí)間條件 * --- 每分鐘執(zhí)行 PS: 在設(shè)置好一個(gè)時(shí)間信息, 前面的時(shí)間也要做規(guī)劃
-
每天上午9,10,11,12點(diǎn) 執(zhí)行數(shù)據(jù)備份
- 連續(xù)的時(shí)間范圍 0 9-12 * * * cp /etc/hosts /etc/hosts.01 規(guī)范配置 0 9-12/1 * * * cp /etc/hosts /etc/hosts.01 理論正確 間隔1小時(shí)執(zhí)行 9-10 and 9-12點(diǎn)執(zhí)行
-
每天上午9 11 執(zhí)行數(shù)據(jù)備份
, 非連續(xù)的時(shí)間范圍 0 9,11 * * * cp /etc/hosts /etc/hosts.01
時(shí)間表示形式:
* 每多少時(shí)間
*/n 每隔多久 間隔時(shí)間
1-10 連續(xù)時(shí)間范圍
1,10 非連續(xù)時(shí)間范圍
-
定時(shí)任務(wù)編寫常見問(wèn)題
1) 每隔5分鐘, 進(jìn)行時(shí)間同步(ntpdate ntp1.aliyun.com) 如何編寫定時(shí)任務(wù): 方法一: 采用絕對(duì)路徑進(jìn)行編寫 */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com 方法二: 放入到腳本文件中 #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/oldboy:/oldgirl:/root/bin echo $PATH &>/tmp/oldboy.txt ntpdate ntp1.aliyun.com 說(shuō)明: 定時(shí)任務(wù)執(zhí)行時(shí), 識(shí)別的環(huán)境變量只有/usr/bin:/bin 2) 規(guī)范化編寫定時(shí)任務(wù) */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null postfix 服務(wù)開啟 --- /var/spool/mail/root 郵件 文件不斷變大 占用更多block postfix 服務(wù)關(guān)閉 --- /var/spool/postfix/maildrop/ 大量小文件 占用更多inode /dev/null --- 系統(tǒng)黑洞 3) 將/etc/hosts 打包備份 /opt/hosts_時(shí)間信息.tar.gz 每分鐘操作 tar zcvf /opt/hosts_$(date +%F).tar.gz /etc/hosts tar zcvf /opt/hosts_`date +%F`.tar.gz /etc/hosts 解決方式一: 將特殊符號(hào)前面加上轉(zhuǎn)義符號(hào) * * * * * tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts 解決方式二: 將有特殊符號(hào)命令放入腳本中 #!/bin/bash tar zcvf /opt/hosts_$(date +%F).tar.gz * * * * * sh /server/scripts/tar.sh &>/dev/null 說(shuō)明: 定時(shí)任務(wù)中有些特殊符號(hào)無(wú)法識(shí)別
定時(shí)任務(wù)編寫注意事項(xiàng):
01. 編寫定時(shí)任務(wù)需要有注釋信息 (時(shí)間 編寫人員 任務(wù)作用)
02. 編寫定時(shí)任務(wù)注意環(huán)境變量 /usr/bin:/bin 命令書寫為絕對(duì)路徑
03. 編寫定時(shí)任務(wù)注意特殊符號(hào) 需要標(biāo)記轉(zhuǎn)義符號(hào)
04. 編寫定時(shí)任務(wù)需要將輸出信息定義到空 &>/dev/null
05. 編寫定時(shí)任務(wù)建議使用腳本編寫
編寫定時(shí)任務(wù)規(guī)范:
命令編寫定時(shí)任務(wù):
第一個(gè)里程: 測(cè)試命令是否可以在命令行執(zhí)行
第二個(gè)里程: 放入定時(shí)任務(wù)中(絕對(duì)路徑)
第三個(gè)里程: 調(diào)整時(shí)間信息進(jìn)行測(cè)試
第四個(gè)里程: 檢查日志信息/檢查任務(wù)執(zhí)行結(jié)果
腳本編寫定時(shí)任務(wù):
第一個(gè)里程: 編寫腳本信息
第二個(gè)里程: 測(cè)試腳本執(zhí)行效果
/bin/sh /server/scripts/test.sh
第三個(gè)里程: 放入定時(shí)任務(wù)中(絕對(duì)路徑)
第四個(gè)里程: 調(diào)整時(shí)間信息進(jìn)行測(cè)試
第五個(gè)里程: 檢查日志信息/檢查任務(wù)執(zhí)行結(jié)果
測(cè)試環(huán)境測(cè)試定時(shí)任務(wù)沒(méi)問(wèn)題:
執(zhí)行腳本將線上服務(wù)器定時(shí)任務(wù)做改動(dòng)
compress.sh
#!/bin/bash
tar xxxxx
#!/bin/bash
echo "* * * * * /sh/bin /server/scripts/compress.sh" >>/var/spool/cron/root
6. 課程知識(shí)總結(jié)
1) 定時(shí)任務(wù)概念作用:
讓反復(fù)工作任務(wù), 可以系統(tǒng)自動(dòng)執(zhí)行
2) 定時(shí)任務(wù)實(shí)現(xiàn)方式:
系統(tǒng)默認(rèn)定時(shí)任務(wù):
自定義定時(shí)任務(wù): 最短周期是每分鐘 存儲(chǔ)服務(wù)器(用戶數(shù)據(jù)信息 18:00---傳輸圖片---18:00:59)
實(shí)時(shí)同步備份數(shù)據(jù)
3) 定時(shí)任務(wù)編寫規(guī)范
定時(shí)任務(wù)文件格式規(guī)范 * * * * * 任務(wù)
定時(shí)任務(wù)時(shí)間定義方法
4) 定時(shí)任務(wù)常見錯(cuò)誤