計(jì)劃任務的(de)安排方式分(fēn)為(wèi)兩種♠®>:
一(yī)種是(shì)定時(shí)性的(de):也(yě)就(jiù)是(sh≤πì)例行(xíng)。就(jiù)是(shì)每隔一(yī)定的(de)周期就(jiù)要(←₽≤yào)重複來(lái)做(zuò)這(zhè)個(gè)事(shì)情
一(yī)種是(shì)突發性的(de):就(jiù)是(sh≈✔¥↓ì)這(zhè)次做(zuò)完了(le)這(zhè)個(gè)事(€• ✘shì)情,下(xià)次就(jiù)沒有(yǒu•∏λ )了(le)。臨時(shí)決定,隻有(yǒu)一(yī)次執行(xíng)
at和(hé)crontab這(zhè)兩個(gè)∏'命令
at:可(kě)以處理(lǐ)僅執行(xíng)一(yī)次就(jiù)σ÷←結束的(de)命令
crontab:會(huì)把你(nǐ)指定的(de)工(gōn✘"g)作(zuò)或任務,比如(rú):腳本等,按照(zhào)設定的(dγe)周期循環執行(xíng)
at命令使用(yòng)方法:
語法:at 時(shí)間(jiān)
服務名:atd
例1:查看(kàn)at服務狀态
[root@xuegod140 ~]# systemctl status atd #查看→↑$γ(kàn)服務狀态
[root@xuegod140 ~]# s$βλ←ystemctl enable atd #開(kāi)機(jī)啓動aλφtd服務
[root@xuegod14 ε0 ~]# systemctl disable atd★↑®< #開(kāi)機(jī)不(bù)啓動atd服務
[root@x♣€<σuegod140 ~]# systemctl staγ↓ φrt atd #開(kāi)啓atd服務
[root@♦∏xuegod140 ~]# systemctl stop atd #關閉×>♦atd服務
centos6查看(kàn)開(kāi)機(jī)啓動服務:
[root@xuegod140 ~]# chkconfig --list | grep a∏®★σtd #7上(shàng)無法執行(xí≤ ≤ng)
例2:使用(yòng)at創建任務計(jì)劃
[root@xuegod140 ~]# at 23:33 #23:33創建一(yī₩↕∏™)個(gè)test目錄
at> mkdir /tmp/test
♥λat>
job 1 at Tue Apr 16 23:33:00 2019
₽£[root@xuegod140 ~]# at -l♥≈₩ #查看(kàn)計(jì)劃任務,atq ®也(yě)可(kě)以查看(kàn)計(jì)劃任務
1 Tue Apr 16 23:33:↓ $<00 2019 a root
[root@xu≈→Ωegod140 ~]# ls -ld /tmp/test/
drw£₽xr-xr-x 2 root root 6 Apr 16 23ασ:33 /tmp/test/
注:任務執行(xíng)完了(le)後,會(huì)自(z₽↑πΩì)動删除。
例3:at計(jì)劃任務的(de)特殊寫法
[root@xuegod140 ~]# at ≈≠γnow +50min #當前時(shí)間(jiān)50分(fēn)鐘(zhōng÷₽Ω♠)以後執行(xíng)任務
[root@xuegod140 ~]# at 2≈λ0:00 2019-4-17 #2019-4-17 20:00 執行(→→©<xíng)任務
[root@xuegod140 ~]# at 6:00 +3days₩×λ< #三天以後的(de)6:00執行(xíng)任務
例4:at計(jì)劃任務的(de)目錄÷γ₩文(wén)件(jiàn)
[root@xuegod140 ~]# ls /var/spool/at/a00002£δ018b912b
/var/spool/at/a00002018b912b
[rγ☆✔oot@xuegod140 ~]# tail -3 !$
tail -5 /var/sp§<₹↑ool/at/a00002018b912b
r ↕m -rf /tmp/test
marcinDELIMITER13ba1c4☆βf
[root@xuegod140 ~]#≈β atq
2Wed Apr 17 00:43:0&₩ 0 2019 a root
[root@xuegodα↔§♠140 ~]# at -c 2 | tail -3
rm -rf /tmp/test
¥®★♠marcinDELIMITER13ba1c4f
注:兩種查看(kàn)計(jì)劃任務內(nèi)容的(d↑Ω✔e)方式,一(yī)種通(tōng)過查看(kàn)γat的(de)文(wén)件(jiàn),一(yī)種at -c 任務号查看(kàn)
注:在xshell終端中,如(rú)果按下(xià)ctrl+÷s,會(huì)鎖定當前終端,無法使用(yòng);按下(xià)ctrl+q接觸鎖定
例5:計(jì)劃任務的(de)删除
命令:atrm 任務編号
[root@xuegod140 ~]# atq
2 Wed Apr 17 00:43:0↔★'0 2019 a root
[root@xuegod140 ~]# atrm ♦ ₩↕2
[root@xuegod140 ~]# atq
crontab file是(shì)用(∏♥δ'yòng)來(lái)定義定時(shí)任務條目的(de)文β•¶(wén)件(jiàn),在Linux中,這(zhè)個(gè)文(wφ✘÷én)件(jiàn)有(yǒu)存在幾個(gè)地(dì)方
系統執行(xíng)的(de)工(gōng)作↑>≠φ(zuò) updatedb、whatis、/etc/cron.♣✘✘'d/*
用(yòng)戶自(zì)己定義的(de)任務文(wén)件Ω→(jiàn) /var/spool/cron/USERNAME
cron命令參數(shù):
cron -e 編輯時(shí)的(de)語法:
分(fēn)為(wèi)7個(gè)字段:分(fēn) 時(shí) 日(rì) 月(yuè) 周← 用(yòng)戶 命令
特殊符号的(de)含義:
例1:cron服務的(de)管理(lǐ)
[root@xuegod140 ~]# systemctl stat¥us crond
[root@xuegod∑σ≤140 ~]# systemctl start crond
[↓βroot@xuegod140 ~]# systemctl¶★ stop crond
[root@xuegod140 ~]# syste≠<mctl enable crond
[root@xueg ≥¥↑od140 ~]# systemctl disable crond
例2:每天淩晨2點1分(fēn)開(kāi)始備份數(shù)據
[root@xuegod140 ~]# crontab -e←↔
no crontab for root - δ↕→using an empty one
crontab: installing γ'new crontab
[root@xueεγφgod140 ~]# crontab -l
1 2 * * * ta"♥↔&r cf /opt/grub.tar /boot/grub/
例3:以zx用(yòng)戶,創建一(yī)個(®gè)計(jì)劃任務
[root@xuegod140 ~]# crontab -u zx -e
no ✔crontab for zx - using anα♦ empty one
crontab: installing new c≈≠♠rontab
[root@xuegod140 ~]#♣ §÷ crontab -l
1 2 * * * tar cf /opt/grub.tar §♣÷/boot/grub/
[root@xuegod140 ~←™&]# crontab -u zx -l #加上(shàn∏✔♣g)-u可(kě)以查看(kàn)單個(gε★÷'è)用(yòng)戶的(de)計(jì)劃任務
1 * * * * echo &lα dquo;hello word” > /dev/nullγδπ•
例4:查看(kàn)所有(yǒu)的(de)計(jì)劃任務
-rw------- 1 root root 4☆ ✔3 Apr 17 00:22 root
-rw------- 1 root root 41 φ↔®ΩApr 17 00:25 zx
[root@xuegod140 ~]# "✘₩cat !$/root
cat /var/spool/cron//root
1 2 * * *✔• tar cf /opt/grub.tar /boot/g₹> ±rub/
[root@xuegod140 ~]# cat /var/spool/↓πφ$cron/zx
1 * * * * echo “hello word&rd♠quo; > /dev/null
例5:每月(yuè)的(de)1,10,22号4:45分(fēn)在/tmp/創建一♣♠(yī)個(gè)a.txt
[root@xuegod140 ~]# crontab -e
crontab: in✘↕ •stalling new crontab
[root@xuegod140 ~]δ∑# crontab -l
45 4 1,10,22 * * touch /tmp/a.txt↔÷
例6:每月(yuè)的(de)1到(dào)10号的(♥±•♣de)4:45,輸入hello word
[root@xuegod140 ~]# crontab δ ε-e
crontab: installing new crontab
[root@xuego•£>d140 ~]# crontab -l
45 4 1-↑σ↔10 * * echo “helδε♦✘lo word”
例7:每隔2天的(de)8-11點的(de)3分(fēn)和(hé)15分(fē☆&₽n),創建一(yī)個(gè)/tmp/b.txt
[root@xuegod140 ~]# crontab -e
crontab: installing new crontab
[root@xuegod140 ~]# ♠∞crontab -l
3,15 8-11 */2 * * touch /tmp/b.txt
例8:周一(yī)到(dào)周五的(de)21:15,創建/tmp/d.txt™↕
[root@xuegod140 ~]# crontab -e
crontab: installing ne★¥β×w crontab
[root@xuegod140 ~]# crontab -l
15 21 * * 1-5 touch /tm₽☆p/d.txt
例9:删除cron計(jì)劃任務
[root@xuegod140 ~]# cronta §βb -l
1 2 * * * tar cf /opt/gr¶≈♣ub.tar /boot/grub/
45 4 1,10,22 * * touch /tmp/a.txt
45 4 1-10 * * echo “hello✘← word”
3,15 8-11 */2 * * touch /tmp/b.txt
15 21 * * 1-5 touch /tmp/d.txt
[root@xuegod140 ~]# crontab -₩♠→✔r
[root@xuegod140 ~]# crontab -l
no crontab for root
注:cron計(jì)劃任務中如(rú)果出現(☆☆§→xiàn)%号,必須加轉義符,不(bù)然表示換行(xíng)意 ÷Ω思
例10:crontab不(bù)支持每秒(miǎo)。每1$Ωε0秒(miǎo)執行(xíng)一(yī)次腳本
[root@xuegod140 ~]# crontab -e
crontab: installing new crontab≤φ
You have new mail in /va♦€r/spool/mail/root
[root@xuegod140 ~]# cr'$∑★ontab -l
[root@xuegod140 ~]# cat a.♣♦₹txt
2019-04-17 01:06:11
2019-04-17 01:06:21
2019-04-17 01:06:31
2019-04-17 01:06:41
2019-04-17 01:06:51
系統任務調度配置文(wén)件(jiàn)
[root@xuegod140 ~]# ll /etc/crontab
-rw-r–r--. 1 root root 451 Jun 10 2014↑ § /etc/crontab
[root@xuegod140 ~]# cat /etc/crontab
SHELL=/bin/bash #指定操作↕✘£↕(zuò)系統使用(yòng)哪個(gè)shelγ©δ∑l
PATH=/sbin:/bin:/usr/sbin:' /usr/bin #系統執行(xíng)命令的(de)搜索路(lù)徑"δ
MAILTO=root #将執行(xíng)任務的(de)信息通(tōng)過mail↑ 發送給XX用(yòng)戶
For details see man 4 crontabs
Example of job definition:
.---------------- minute (0 -♣∑ 59)
| .------------- hour (0 - 23)
| | .---------- day of m©<onth (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,m¥§π₹ar,apr …
| | | | .---- day of week (0 - 6) (Sunday=₽±↕<0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
我們也(yě)可(kě)以直接在配置文(wén)件(jiàn)中添加™•π計(jì)劃任務
/etc/con.d/目錄下(xià)文(λ®≈wén)件(jiàn)說(shuō)明(míng):
cron.deny #控制(zhì)用(yòng)戶是(s±☆σΩhì)否能(néng)做(zuò)計(jì)劃任務的(•✘de)文(wén)件(jiàn);
cron.monthly #每月(yuè)執行(xínπ±✔g)的(de)腳本;
cron.weekly #每周執行(xíng)的(d ±≠e)腳本;
cron.daily #每天執行(xíng)的(de)腳本;
cron.hourly #每小(xiǎo∏→α)時(shí)執行(xíng)的(de)腳本;
crontab #主配置文(wén)件(jiàn)
每天2:00備份/etc/目錄到(dào)/tmp↑/backup/目錄下(xià);
将備份命令寫入一(yī)個(gè)腳本中
每天備份文(wén)件(jiàn)名要(yào)求格∏∑©←式:2017-08-19_etc.tar.gz
在執行(xíng)計(jì)劃任務時(shí),不(bù)要(yào)輸出任務信息
存放(fàng)備份內(nèi)容的(de)目錄要(yào)求隻保留三天的(d •e)數(shù)據
實驗步驟:
創建備份文(wén)件(jiàn)的(de)存放(fàng)目錄:
[root@xuegod140 ~]# mkdir /tmφ€αp/backup
編寫執行(xíng)腳本,因為(wèi)需要(yà→≈o)備份/etc目錄,所以需要(yào)使用(yòng)到(dào)tar命令;
備份的(de)文(wén)件(jiàn)隻保留三天,所以'×¶需要(yào)删除三天以前的(de)數(shù)>&據,使用(yòng)find命令
将上(shàng)述的(de)兩條命令,寫到(dào)腳本文(wén)件(₹✔φ§jiàn)
[root@xuegod140 ~]# vim back.sh
[root@xuegod140 ~]# cat back.sh
#!/bin/bash
find /tmp/backup/ -name “.tar.gz" -mtime +3 -delete
#find /tmp/backup/ -name ".tar.gz” -mtime +3 -exec rm -rf {} ;
#find /tmp/backup/ -name “*.tar.gz” ☆<-mtime +3 | xagre rm -rf
tar zcvf /tmp/backup/date +%F
_etc.tar.gz /etc
編寫crontab任務,按照(zhào)每天2:00備份,π•φ設置計(jì)劃任務
[root@xuegod140 ~]# cron∞&αtab -e
crontab: installing new crontab
[root@xuegod140 ~]# crontab -l #因δ α 為(wèi)需要(yào)立即看(kàn)到(dào)實驗效果,所以時(shí)間(jiān)不( γbù)同
39 20 * * * bash /root/back.sh &> /dev/•✘®null
[root@xuegod140 ~]# ls /λ ∞tmp/backup/
2019-04-17_etc.tar.gz
這(zhè)裡(lǐ)為(wèi)了(le)能(néng)看(kàn)到(dào)fin₹>≈d的(de)命令的(de)效果,我們先修改日(rì)期後,手動執行(xíng)☆¥腳本文(wén)件(jiàn)
[root@xuegod140 ~]# date -s φλ“2019-04-18”
[root@xuegod140 ~]# dat©ε→$e
Thu Apr 18 00:05:56 CST 2019
[root@xuegod140 ~]# bash&nb∑Ω©sp;back.sh
[root@xuegod140 ~]# date -s “2019-04-19&r₽₹♦dquo;
Fri Apr 19 00:00:00 CST 2019
[root@xuegod140 ~]# bash&nb'&♠<sp;back.sh
[root@xuegod140 ~]# date -s “2019-04-20&rd£✔quo;
Sat Apr 20 00:00:00 CST 2019
[root@xuegod140 ~]# date -s &ldquγ≤ o;2019-04-21”
Sun Apr 21 00:00:00 CST☆π© 2019
[root@xuegod140 ~]# basδγ×h back.sh
[root@xuegod140 ~]# ll /tmp/backup/₹α←
total 52520
-rw-r–r-- 1 root root 10755↓≤840 Apr 19 00:00 2019-04-19_etc. •✘tar.gz
-rw-r–r-- 1 root root 10755840 Apr 20 00:00✔γ≤≠ 2019-04-20_etc.tar.gz
-rw-r–r-- 1 root root 10755840 Apr 21☆✔ 00:00 2019-04-21_etc.tar.gz
注:-mtime +3 :不(bù)包含當前 ↕∞"的(de)天數(shù),往前數(shù)三天
在centos7中,系統日(rì)志(zhì™§λ•)消息有(yǒu)兩個(gè)服務負責處理(lǐ):systemd≈$-journald和(hé)rsyslog
常見(jiàn)日(rì)志(zhì)文(wén)件(jiàn)概述:/var/log目錄保¶ε管由rsyslog維護的(de),裡(lǐ'<)面存放(fàng)的(de)一(yī)些(xiē)特定于系統和(hé)服務的(de)日(rì₽↔≠)志(zhì)文(wén)件(jiàn)
日(rì)志(zhì)文(wén)件(jiàn)δ♠¶ 用(yòng)途
/var/log/message 大(dà)多(™∞βduō)數(shù)系統日(rì)志(zhì)消息記錄在此處。有(yǒu)也(yě)例外(wài>↓)的(de):如(rú)與身(shēn)份驗證,電(diàn)子(zǐ)郵件(jiàn)處理(l♥αǐ)相(xiàng)關的(de)定期作(zuò)業(yè)任務等
/var/log/secure 安全和(hé©≠)身(shēn)份驗證相(xiàng)關的(de)消息和(hé)登錄失敗的(de)日π≠(rì)志(zhì)文(wén)件(jiàn)。 ssh遠(yu↔<ǎn)程連接産生(shēng)的(de)日(rì)志(zhì)
/var/log/maillog 與郵件(jiàn)服務器(qì)相(xiàng)關₹β★"的(de)消息日(rì)志(zhì)文(wén)件(jiàn)
/var/log/cron 與定期執行(xíng)任務相(xiàng)關的(Ω™♣de)日(rì)志(zhì)文(wén)件(jiàn)
/var/log/boot.log 與系統啓動相(xi÷↑àng)關的(de)消息記錄
/var/log/dmesg 與系統啓動相(xiàng)關的(de)消息記錄
例1:查看(kàn)那(nà)個(gè)IP地(dì§↓÷₩)址經常暴力破解系統用(yòng)戶密碼
[root@xuegod140 log]# ssh rootα©"↕@192.168.1.140 #先故意輸錯(cuò)3次密☆≥∏碼
[root@xuegod140 log]# ™÷↑grep -i failed /var/log/secπ¶∞ure #-i忽略大(dà)小(xiǎo)寫,查看σ¶₽λ(kàn)登錄失敗的(de)信息
Apr 17 01:08:01 xuegod140 CROND[5527]☆€: pam_systemd(crond:s★☆₽πession): Failed to release sessio←¥εn: Interrupted system call
Apr 21 20:25:01 xuegod140 ssh ® d[1920]: Failed password for root f™←↕rom 192.168.1.140 port 43712 ssh2
Apr 21 20:25:04 xuegod140 sshd[1920]: Fai★≤led password for root from 192.16±↓8.1.140 port 43712 ssh2
Apr 21 20:25:07 xueg ≥ ×od140 sshd[1920]: Failed password for root fro∞ m 192.168.1.140 port 43712 ssh2
[root@xuegod140 log]# γ ↕grep -i failed /var/log/secure | awk &lsαπquo;{print $11}’ #打印第11列內(nèi)容
192.168.1.140
192.168.1.140
192.168.1.140
[root@xuegod140 log]# gre✘ p -i failed /var/log/se&€cure | awk ‘{print $₩11}’| uniq -c #uniq 去(qù)除重複項,-c 統計(jì)個♣ ×(gè)數(shù)
3 192.168.1.140
例2:/var/log/wtmp文(wén)件(jiàn)δ•>作(zuò)用(yòng)
wtmp是(shì)一(yī)個(gè)二進制(zhì)文(wén)件(jiàn),γΩ記錄每個(gè)用(yòng)戶登錄次數(shù)和(h&>€é)持續時(shí)間(jiān)等信息
[root@xuegod140 log]# last
root pts/0 192.168.1.188 Sun Apr 21 20:1₩•5 still logged in
#登錄用(yòng)戶 虛拟終端 登錄終端的(de)IP 登錄日(rì)志(zhì) 仍然€★登錄中
root pts/1 192.168.1.188 Wed Apr 17 20:23 - down γ∑ (2+03:52)
可(kě)以使用(yòng)last命令輸入wtmp中的(de)內(nèi)容,last 顯₹β§示到(dào)目前為(wèi)止,成功登錄系統的(de)ε←£記錄
或者:
[root@xuegod140 log]# last -₹ ₽∞f /var/log/wtmp
root pts/0 192.168.1.188 Sun Apr 21 20:15 π∑ still logged in
reboot system boot 3.10λ÷.0-862.el7.x Wed May&₽ 22 11:29 - 20:36 (10196+10:07
例3:/var/log/btmp文(wén)件(↕φ≥εjiàn)作(zuò)用(yòng)
查看(kàn)暴力破解系統用(yòng)戶;btmp文(wén)≈¶←件(jiàn)記錄錯(cuò)誤登錄系統的(de)日(rì)志(zhì),如←∏€<(rú)果發現(xiàn)此文(wén)件(jiàn)大(dà)于1M,就(jiù)就(ji✘↓γù)說(shuō)明(míng)有(yǒu)很(hěn)多(duō)人(rén)在暴力破&→$解ssh服務,此日(rì)志(zhì)需要(yào)用(yòng)last<€b命令查看(kàn)
[root@xuegod140 log]# lastb #可(kě)以看(kàn≤∑&)到(dào)剛剛登錄失敗的(de)三次記錄
root ssh:notty 192.168.1.140 Sun Apr 21 2ε$0:25 - 20:25 (00:00)
root ssh:notty 192.168.1.14>•✔0 Sun Apr 21 20:25 - 20:25 (00:00)
root ssh:notty 192.168.1.140✘π Sun Apr 21 20:25 - 20:25 (00:00)
[root@xuegod140 log]# ♣≤≈₹ll -h btmp #此文(wén)件(ji±™&àn)大(dà)于1M,就(jiù)說(shuō)明(m"δíng)有(yǒu)人(rén)暴力破解π✘
-rw-------. 1 root utmp 1.5K Apr 21 20:25 btmp₽↑≈
例4:btmp文(wén)件(jiàn)信息過多(d±☆λuō)時(shí),我們需要(yào)查看(kàn)某個(gè)IP地(dì)址的(de)暴π•≈力破解次數(shù)
[root@xuegod140 log]# lastb | awk &lsq™€✘uo;{print $3}’ |sort -n|uniq -c #查看(kàn)♥≈δ所有(yǒu)登錄失敗的(de)IP地(dì)址☆✘©
3 192.168.1.140
或者
[root@xuegod140 log]# lastb | awk &lsqu€<o;{print $3}’ | grep 192.168.1.140 | wc -l♣↑ φ #查看(kàn)某個(gè)IP地(dì)址
3
例5:清空(kōng)日(rì)志(zhì)
方法1:
[root@xuegod140 log]# &g®÷♦t; /var/log/secure #使用(yòng)重定向清空(kōng)日(rì)志(zhì™↓&)文(wén)件(jiàn)
方法二:
[root@xuegod140 log]# rm -rf /var/log/≤&¥✘btmp && touch /var/log/btmp ÷Ω#先删除後創建
上(shàng)述兩種方法,建議(yì)使用(yòn >™g)第一(yī)種,使用(yòng)方法二,新創建的(de)文(wén)件(j₽λγiàn)會(huì)重新生(shēng)成inode号,服務使用(yòng)的(de)☆↓®還(hái)是(shì)舊(jiù)的(de)inode号&π↔'和(hé)文(wén)件(jiàn)描述符,需要(yào)手動重啓服務加載新的(de)inode号 ≈才生(shēng)效。
方法一(yī),不(bù)改變文(wén)件(jiàn)的(de)ino ✔" de和(hé)描述符信息。
分(fēn)類和(hé)級别
日(rì)志(zhì)的(de)分(fēn)類:
daemon 後台進程相(xiàng)關
kern 內(nèi)核産生(shēng)的(de)信息
lpr 打印系統産生(shēng)的(de)
authpriv 安全認證相(xiàng)關
cron 計(jì)劃任務相(xiàng)關
mail 郵件(jiàn)相(xiàng)關
syslog 日(rì)志(zhì)服務本身(sh β♥★ēn)的(de)
news 新聞系統
local0-7 自(zì)定義的(de)日(rì)志(zhì)設備
local0-7 8個(gè)系統保留的(de)類,供其它的(deα™)程序使用(yòng)或者是(shì)用(yòng)戶自(zì)定義
日(rì)志(zhì)的(de)級别
從(cóng)輕>>>重
rhel5 服務名稱syslog 配置文(wén)件(jiàn) /etc/syslog.con♥ f
rhel6/7 服務名稱rsyslog 配置文(wén)件(jiàn)/etc/≥™←rsyslog.conf
查看(kàn)配置文(wén)件(jiàn)信息:
[root@xuegod140 ~]# grep♦> -v “#|$” /etc/rsyslog.conf
$ModLoad imuxsock # provides support for local sy£↔♠$stem logging (e.g. via logge ₹↔r command)
$ModLoad imjournal # pro✘δvides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFi©↕leFormat
$IncludeConfig /etc/rsyslog.d/.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
.info;mail.none;authpriv.none;cr"↓on.none /var/log/messages
authpriv. /var/log/secure
mail. -/var/log/maillog
cron.* /var/log/cron
.emerg :omusrmsg:
uucp,news.crit /var/l↓©¥¶og/spooler
local7.* /var/log/boot.log
注釋:
#UDPServerRun 514 #允許 514 端口接收使用(yòng) UDP 協議(yì)≥轉發過來(lái)的(de)日(rì)志(zhì)
#InputTCPServerRun 514 #允許 514 端口接收使用(yòng) TCP ∑協議(yì)轉發過來(lái)的(de)日(rì)志(zhì)
例:kern.* /dev/console #所有(yǒu)↔Ω內(nèi)核級别的(de)日(rì)志(zhì)存放(fàng)β×到(dào)/dev/console
.info;mail.none #所有(yǒu)類型的(de<¶$)info級别,除mail類型外(wài)
authpriv. #所有(yǒu)認證級别的(de)日(rì)志(zhì)存放(f¥>àng)到(dào) /var/log/secure
cron.* #計(jì)劃任務類型的(de)所有(yǒu)級别存放(fàng)到(d↔¶ào) /var/log/cron
.emerg #所有(yǒu)類型的(de)緊急級别,存放(fàng)到(dào) :o↕musrmsg:
local7.* #local7類型的(de)所有(yǒu)級别,存放'"(fàng)到(dào) /var/loπ↓g/boot.log
注:
mail.* -/var/log/mai∞ llog
“-”:郵件(jiàn)的(de)信息比較多(duō),先将數(shù)✔✔ ♠據存儲到(dào)內(nèi)存,達到(dào)一(yī)定大(dà)小∑ε(xiǎo),全部寫到(dào)硬盤。有σ€÷¶(yǒu)利于減少(shǎo)硬盤IO進程的(de✘γ')開(kāi)銷,數(shù)據存儲在內(nèi)存,如(rú)果關機(jīσ¥§←)不(bù)當數(shù)據消失。
.info 大(dà)于等于info級别的(de)信息全部記錄到(dào)某個(gè)文(wén☆ )件(jiàn)
.=級别 僅記錄等于某個(gè)級别的(de)日(rì)志(zhì)π€∏
例:.=info 隻記錄info級别的(de)日(rì)志(zhì)
.! 級别 除了(le)某個(gè)級别以外(wài),記錄所有(yǒu)的(de)級别信息
例:.!err 除了(le)err級别以外(wài),記錄其它所有( ®yǒu)級别所有(yǒu)信息
.none 指的(de)是(shì)排除某個(gè)類别
例: mail.none mail類型的(de)所有(yǒu)級别都(dōu)不(bù)記錄
實戰:自(zì)定義ssh服務的(de)日(rì)志(zhì)類型和(hé)存放(fàng≤↓≈)位置
第一(yī):修改ssh服務配置文(wén)件(jiàn)sshd.conf存放>"(fàng)日(rì)志(zhì)的(de)類别
複制(zhì)原來(lái)的(de)日(rì)志(zhì)存放(fàng)類别,然後自ε₩σ✔(zì)定義一(yī)個(gè)local0類别
[root@xuegod140 ~]# vim /etc/ssh/sshd♥ε₹_config
32 #SyslogFacility AUTHPRIV
33 SyslogFacility local0
第二:修改系統日(rì)志(zhì)配置文(w₹←β≤én)件(jiàn)rsyslog.conf的(de)分≤δ±(fēn)類和(hé)級别
增加新的(de)local0分(fēn)類的(de)所有(yǒu•€¥δ)級别存放(fàng)到(dào)/var/log/sshd.loσ¶©₩g
[root@xuegod140 ~]# vim /etc/r₩&syslog.conf
72 # Save boot messag¥≤es also to boot.log
73 local7.* /var/log/boot.log
74 local0.* /var/log/sshd.log
第三:重啓服務
[root@xuegod140 ~]# systemctl ≥ restart rsyslog.service
[root@xuegod140 ~]# systemctl r¥↔estart sshd
第四:查看(kàn)ssh服務日(rì)志(zhì)文(wén)&≤¶件(jiàn)
[root@xuegod140 ~]# ls /var/log/sshd.log £✔
/var/log/sshd.log
[root@xuegod140 ~]# cat !$
cat /var/log/sshd.log
Apr 22 00:36:11 xuegod140 sshd[★β5223]: Server listening on 0★₽©.0.0.0 port 22.
Apr 22 00:36:11 xuegod140 sshd[5223]×&♣♦: Server listening on :: port 22.
第五:使用(yòng)ssh登錄,進行(xín↔₩"g)測試
第一(yī)次登錄失敗,第二次登錄成功,查看(kàn)日(r λì)志(zhì)文(wén)件(jiàn)
[root@xuegod140 ~]# tail -2 /var/log/sshd.log
Apr 22 00:38:18 xuegod↓π☆140 sshd[5250]: Fail×♠ed password for root≈ from 192.168.1.103 port 51101 ssh2
Apr 22 00:38:21 xuegod140 s> ♥shd[5250]: Accepted passwordαδ for root from 192.168.1.103 port 51101 ssh€$2
注:沒有(yǒu)修改前,ssh服務的(de)所有(yǒu)日(rìδβ)志(zhì)都(dōu)是(shì)存放(fàng)到(dào)←✔©≥/var/log/secure文(wén∞↑© )件(jiàn)中
在 linux 下(xià)的(de)日(rì)γ•<志(zhì)會(huì)定期進行(xíng)滾動增加,我們可(kě)以在線對(duì)正←₩✘₹在進行(xíng)回滾的(de)日(rì)↔♠★志(zhì)進行(xíng)指定大(dà)小(xiǎo)的(de)¥λλ☆切割(動态),如(rú)果這(zhè)個(gè)日(rì)志(zhì)是(sh♠↕♣←ì)靜(jìng)态的(de)。比如(rú)沒有(yǒu)應用(yòng)向裡(lǐ)面↔<寫內(nèi)容。那(nà)麽我們也(yě)可(kě)以用(yòng) sp εlit 工(gōng)具進行(xíng)切割;其中 Logrotate 支持按時(shí&☆)間(jiān)和(hé)大(dà)小(xiǎo)來(lái)自(zì)動切分(fēn)←α≈",以防止日(rì)志(zhì)文(wén)件(jiàn)太大(dà)。
logrotate命令配置文(wén)件(jiàn):
主配置文(wén)件(jiàn)/etc/logrotate.conf
切割文(wén)件(jiàn):/etc/logrotate.d/ #所有(y©★ǒu)需要(yào)自(zì)定義的(de)日(rì)志(zh ✘♦ì)切割都(dōu)需要(yào)防止到(dào)這(Ωεzhè)個(gè)目錄下(xià)
logrotate的(de)執行(xíng)是(sh±÷≠ì)由cornd服務調用(yòng)的(de)。
切割配置文(wén)件(jiàn)的(de)♥₽其它參數(shù)說(shuō)明(míng):
monthly: 日(rì)志(zhì)文(wén)件(jiàn)将按月(yuè)輪循。其它可(♣ kě)用(yòng)值為(wèi)‘daily’,‘we↑Ω¶✘ekly’或者‘yearly’。
rotate 5: 一(yī)次将存儲 5 個ε♥(gè)歸檔日(rì)志(zhì)。對(duì)于第六個(gè)歸檔,時(shí)間(jiā'↔"≤n)最久的(de)歸檔将被删除。
compress: 在輪循任務完成後,已輪循的(de)歸§→×檔将使用(yòng) gzip 進行(xíng)壓縮。
minsize:小(xiǎo)于1M不(bù)切割;maxsize:大(>®≠dà)于多(duō)少(shǎo)進行(xíng)切割
delaycompress: 總是(shì)不(bù) comp☆γ¥∑ress 選項一(yī)起用(yòng),delay←±↑compress 選項指示 logrotate 不(α≤bù)要(yào)将最近(jìn)的(de)歸檔壓縮,壓縮"$将在下(xià)一(yī)次輪循周期進行(xíng)。這(z✘<≠hè)在你(nǐ)或任何軟件(jiàn)仍然需$λ要(yào)讀(dú)取最新歸檔時(shí)很(hěn)φ÷↓有(yǒu)用(yòng)。
missingok: 在日(rì)志(zhì)輪循期間(ji♣'ān),任何錯(cuò)誤将被忽略,例如(rú)“文(wén)件(jiφ'àn)無法找到(dào)”之類的(de)錯(cuò)誤φ★₽δ。
notifempty: 如(rú)果日(rì)志(zh♦πì)文(wén)件(jiàn)為(wèi)空(≥✔×↑kōng),輪循不(bù)會(huì)進行(×§xíng)。
create 644 root root: 以指定的(de)權限創建全新的(∏₽de)日(rì)志(zhì)文(wén)件(jiàn),同時¥ ¥(shí) logrotate 也(yě)會(hu죱 )重命名原始日(rì)志(zhì)文(wén)件(jiàn)。
postrotate/endscript: 在所有(∞×>€yǒu)其它指令完成後,postrotate 和(hé) endscript 裡(lǐ)面≤φπ指定的(de)命令将被執行(xíng)。在這(zh×→φè)種情況下(xià),rsyslogd 進程将立即再次讀(d× ↔€ú)取其配置并繼續運行(xíng)。
/var/lib/logrotate/status 中默認記錄★'↓∏ logrotate 上(shàng)次輪換日(rì)志(zhì)文(wén®↕π)件(jiàn)的(de)時(shí)間(jiān)。
例1:查看(kàn)logrotate切割的(de)計♦®↔δ(jì)劃任務:
[root@xuegod140 ~]# l∑ φs /etc/cron.daily/logrotate
/etc/cron.daily/logrotate
[root@xuegod140 ~]# cat /etc/cr×♦on.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logr¶∞§ otate.status /etc/logrota★ te.conf
EXITVALUE=$?
if [ EXITVALUE!=0];then/usr/bin/logger−tlogrotate"ALERTexitedabnormallywith[EXITVALUE]"
fi
exit 0
例2:查看(kàn)logrotate.conf文(wén)件(jiàn)
[root@xuegod140 ~]# grep -v ^$ /etc/≥Ω≤logrotate.conf
#see “man logrotate&rdqu♠φ↑o; for details
#rotate log files weekly
weekly #按周進行(xíng)切割;也(yě)可(kě)以按天、月(yuè)、年(♥↓ nián)等切割
#keep 4 weeks worth >α✘₽of backlogs
rotate 4 #保留4份,不(bù)含自(zì)身(shēn)的(de)一(yī)份
#create new (empty) log files after r§∏→™otating old ones
create #切割後創建新文(wén)件(jiàn)
#use date as a suffix of the rotε€$ated file
dateext #以日(rì)期作(zuò)為(wèi)後綴進行(xíng)切割
#uncomment this if y♣•∞↕ou want your log files compressed
#compress # 是(shì)否需要(yào)壓縮日(rì)志(≠↕zhì)
#RPM packages drop log rotation information φ♣©into this directory
include /etc/logrotate.d #将需要(yào) α>≥切割的(de)日(rì)志(zhì)切割文(wén)<∑件(jiàn)放(fàng)到(dào)這(zhè)個✔♠↕(gè)目錄內(nèi)
#no packages own wtm♠ >•p and btmp – we’ll rotate"® them here
/var/log/wtmp {
monthly #按月(yuè)切割
create 0664 root utm×↔★p #創建文(wén)件(jiàn),權限0664 ,用(yòng)戶root,屬組ut→$✘mp
minsize 1M #文(wén)件(jiàn)大(dà)小(xiǎo)1M,進行(xíng)↓±切割
rotate 1 #保留一(yī)份,不(bù)包含自(zì)身(shēn)★♠∏"
}
/var/log/btmp {
missingok #忽略錯(cuò)誤信息
monthly #按月(yuè)切割
create 0600 root utmp #創建新文(↓♠wén)件(jiàn)等
rotate 1 #保留一(yī)份
}
#system-specific logλφs may be also be configured here.
例3:查看(kàn)/etc/logrotatαe.d/目錄下(xià)的(de)文(wén)件(jiàn)
[root@xuegod140 ~]# cd /etc/logrota←≤te.d/
[root@xuegod140 logrotate.d]# ls
bootlog cups iscsiuiolog libvirtd. ↑☆qemu ppp samba wpa_supplicant
chrony httpd libvirtd numad psacct σ≥≈syslog yum
[root@xuegod140 logrotate.d]# cat sysl♠σ og
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler #對(duì)以上(shàng)目錄按照(↔✔¶≤zhào)如(rú)下(xià)标準進行(xíng)切割
{
missingok #忽略錯(cuò)誤
sharedscripts #使用(yòng)¶±腳本 postrotate #開(kāi)始腳本
/bin/kill -HUPcat /var/run/syslogd.pid 2&g≈₹&t; /dev/null
2> /dev/null || true
endscript #結束腳本
}
例4:系統日(rì)志(zhì)切割流程
(1)logrotate的(de)啓動腳本被放(fàng)在了(le)Crontab每天執行(x&₹✔βíng)的(de)腳本目錄中/etc/cron.daily,這(zΩ∑★hè)樣Crontab每天都(dōu)會(huì)執行(xíng)一(y✘εī)次logrotate;
(2)logrotate啓動的(de)時(sh≈≤₩í)候,使用(yòng)了(le)配置文(wén)件>☆©γ(jiàn)/etc/logrotate.conf;δ<
(3) 配置/etc/logrotate.conf中又(yòu)引入了(le)目錄:/etσ∞c/logrotate.d;
(4)我們在/etc/logrotate.d目錄下(xià)建立自(zì)己的(de)logro→₽∑tate配置文(wén)件(jiàn);
(5)這(zhè)樣,當logrotate啓動的>§(de)時(shí)候就(jiù)會(huì)執行(xíng)一(y↓★Ω©ī)次轉儲,從(cóng)而按照(zhào)我們的(de)配置來(láε÷i)轉儲我們指定的(de)日(rì)志(zhì)文(wén)件(jiàn)。
例5:使用(yòng)dd命令生(shēng)産兩個(gè)文(wén)件(jiàn)&↑≥,進行(xíng)切割
[root@xuegod140 opt]# dd i®"α₹f=/dev/zero of=acce.log bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 M∞©✔♦B) copied, 0.121766 s, 861 MB/s
[root@xuegod140 opt]# dd if=/dev/zero ∑™★♠of=accf.log bs=1M count=50
50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.0632254 s,®←₽ 829 MB/s
[root@xuegod140 opt]# ll -h
total 150M
-rw-r–r-- 1 root root 100M Apr 22 02:1>±>5 acce.log
-rw-r–r-- 1 root r§×oot 50M Apr 22 02:15 accf.log
[root@xuegod140 log]# cd /etc/logrotate.d∏σ<δ/
[root@xuegod140 opt]# ₹ vim /etc/logrotate.d/acc
[root@xuegod140 opt]# cat /etc/logr÷↓©↕otate.d/acc
/opt/*.log
{
daily
maxsize 80M
missingok
rotate 3
dateext
create 0644 root root
}
[root@xuegod140 ~]# logrotate -dv /etc/logrotate.λ✔$πd/acc
reading config file /etc/logr∏≤otate.d/acc
Allocating hash table for state file, size 153γ≥♣β60 B
Handling 1 logs
rotating pattern: /opt/acce.log
/opt/accf.log
after 1 days (3 rotatε≠≈ions)
empty log files are rotated, log fi∑les >= 83886080 are±≈≈≤ rotated earlier, olφ§£≤d logs are removed
considering log /opt/acce.lo€₹g
log needs rotating
considering log /optσ≈/accf.log
log does not need rotating (log has been©φ rotated at 2019-4-22 2:17, tλ™hat is not day ago yet)
rotating log /opt/acce.log, ÷ log->rotateCount iα s 3
dateext suffix ‘-2÷€0190422’
glob pattern ‘-[0-9≠][0-9][0-9][0-9][0-9][0-9][0- ♣9][0-9]’
glob finding old rotated •₹$logs failed
renaming /opt/acce.log to / &opt/acce.log-2019042¶≠ $2
creating new /opt/acce.log mode = 06¥¶>→44 uid = 0 gid = 0
[root@xuegod140 opt]# syλ↑stemctl restart rsysl&Ω≤og.service
強制(zhì)切割
[root@xuegod140 ~]# σ♣€logrotate -fv /etc/logrotate.d/acc
reading config file /etc/logr×$otate.d/acc
Allocating hash table ♠ for state file, size 15360 B
Handling 1 logs
rotating pattern: /opt/acce.log
/opt/accf.log
forced from command lin↕ ♥∞e (3 rotations)
empty log files are rotat&•£ed, log files >= 83886080 are rotated e π arlier, old logs are removed
considering log /opt/acce.log
log needs rotating
considering log /opt/accf.log
log needs rotating
rotating log /opt/acce.lo✔g, log->rotateCount is 3®£
dateext suffix ‘-20190422&rγγ φsquo;
glob pattern ‘-[0-9][0-9][0-9][0-9][0-9][0-§±×9][0-9][0-9]’
glob finding old rotated logs failed
renaming /opt/acce.log to /o&§<™pt/acce.log-20190422
creating new /opt/acce.lo™→≈¥g mode = 0644 uid = 0 gid = 0
rotating log /opt/accf.log, " log->rotateCount is 3
dateext suffix ‘-20190422’
glob pattern ‘-[0-9][0-9][0-✔♦9][0-9][0-9][0-9][0-9][0-9]’
glob finding old rotated logs failed
renaming /opt/accf.log to /opt/accf.lo§↕∑βg-20190422
creating new /opt/accf.log mode = 0644 uid = 0 g£₩id = 0
[root@xuegod140 ~]# ls /opt/
acce.log acce.log-2019042β☆→2 accf.log accf.log-20190422
[root@xuegod140 ~]# ll -h /opt≠/
total 150M
-rw-r–r-- 1 root ro₽×<ot 0 Apr 22 19:32 ac₩≈ce.log
-rw-r–r-- 1 ro∞★ot root 100M Apr 22 02:23 acce.lo↔☆λg-20190422
-rw-r–r-- 1 root root 0 Apr 22 19:32 accf•γ©.log
-rw-r–r-- 1 root root 50M₹€ Apr 22 02:23 accf.lo₩♦↓g-20190422
9、配置遠(yuǎn)程日(rì)志(zhì)服務器(qì)-實現(xiàn)日(₹πrì)志(zhì)集中的(de)管理(lǐ)
實驗拓撲圖:
server端配置
[root@xuegod63 ~]# vim /etc/rsyslog.conf "α✘Ω# 使用(yòng)TCP協議(yì)方式,收集日(rì)志(zhì)
改:19 #KaTeX parse error: Expected '¶EOF', got '#' at position 2 ε↑∞2: …d imtcp 2✘♥0 #̲InputTCPServerRun 514
為(wèi):
19 $ModLoad imtcp
20 $InputTCPServerRun 514
注:使用(yòng)UDP協議(yì)速度快(kuài)不(bù)保證數(shù)據的(de)完₩♣整,使用(yòng)TCP協議(yì)可(kě)靠.完整
[root@xuegod63 ~]# systemctl restart rsysl$ og #重新啓動 rsyslog
查看(kàn)服務監聽(tīng)的(de)狀态:
[root@xuegod63 ~]# netstat -anlpt| αβ∑™grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LI≥∞δ STEN 45631/rsyslogd
tcp6 0 0 :::514 ::? LISTEN 45631/rsβ ★yslogd
服務端驗證:
在服務端關閉selinux和(hé)防火(huǒ)牆
[root@xuegod63 ~]# getenforce
Enforcing
[root@xuegod63 ~]# setenforce 0 #關閉selinux功能(né÷↕ng)
[root@xuegod63 ~]#getenforce
Permissive
[root@xuegod63 ~]# systemctl stop firewalld
[root@xuegod63 ~]# systemctl statu•♥s firewalld
[root@xuegod63 ~]# ipt™₩"ables -F #清空(kōng)防火(huǒ)牆規則
client端配置
登錄xuegod64.cn
[root@xuegod63 ~]# vim /etc/rsy$©slog.conf #在90行(xíng)之後,插入
. @@192.168.1.63:514
注: . 所有(yǒu)類别和(hé)級别的(de)日(rì)志(zhì) ; @φσ∞♠@192.168.1.63:514 遠(yu♣π±ǎn)端tcp協議(yì)的(de)日(rì)志(zhì)服務端的¥÷(de)IP和(hé)端口
重啓rsyslog 服務
[root@xuegod64 ~]# systemctl restart rsysφ✘log.service
查看(kàn)日(rì)志(zhì):
[root@xuegod63 ~]# tail -f /var/log/messages | ₹λgrep xuegod64 --color #動态查看(k•☆àn)日(rì)志(zhì)
在客戶端xuegod64進行(xíng)測試
語法: logger 要(yào)模拟發送的(de)日(rì)志( ≥zhì)
[root@xuegod64 ~]# l©Ω←∏ogger “aaaaa”
[root@xuegod63 ~]# tail -f /var/log/messages |φ₽§♠ grep xuegod64 --color #服務器(qì)端到(dào)查看(✔≥§∞kàn)消息
May 21 16:32:16 xuegod64 root: aaaaa
注:
總結:服務器(qì)使用(yòng)udp協議(yì),客戶端隻能(néng)使用(yònβ≥g)的(de)配置文(wén)件(jiàn)中這(zhè)一(yī)行(xín&®↓ g)隻能(néng)有(yǒu)一(yī)個(gè)@≥λ₽©
. @192.168.1.64:514
服務器(qì)使用(yòng)tcp協議(yì),客戶端隻♣✘♠能(néng)使用(yòng)的(de)配置文(wé↓∞n)件(jiàn)中這(zhè)一(yī)行(xíng)必須有(yǒu)兩個(gè)@@
. @@192.168.1.64:514