定時(shí)任務(wù)要領(lǐng):
* * * * *? /bin/sh /server/scripts/bak.sh &>/dev/null
如何調(diào)試定時(shí)任務(wù)蝇裤?
1展姐、查看錯(cuò)誤日志*****
/var/log/cron
學(xué)會(huì)最小化排除:
先清空,>/var/log/cron
然后在測(cè)試和觀察供置。
2坟比、增加執(zhí)行任務(wù)頻率調(diào)試任務(wù) *****
? 把頻率調(diào)快。
3肩袍、把定時(shí)任務(wù)執(zhí)行時(shí)間比當(dāng)前時(shí)間拖后5分鐘
? ? 00 03執(zhí)行,當(dāng)前5:00婚惫,咱們就把時(shí)間調(diào)整 05 05,有個(gè)5分鐘提前量氛赐。
4、調(diào)整系統(tǒng)時(shí)間(測(cè)試環(huán)境還湊合)
00 03執(zhí)行先舷,把系統(tǒng)時(shí)間調(diào)整到2:55艰管。
5、通過腳本日志輸出調(diào)試定時(shí)任務(wù)
定時(shí)任務(wù)輸出
* * * * *? /bin/sh /server/scripts/bak.sh &>/tmp/bak.log
腳本輸出:
tar zcvf oldboy.tar.gz? ./data &>/tmp/tar.log
注意點(diǎn):
有時(shí)候程序只能執(zhí)行一次蒋川。一定要在測(cè)試環(huán)境測(cè)試好牲芋,然后直接復(fù)制到正式。
代碼發(fā)布流程:
辦公室測(cè)試環(huán)境===>IDC機(jī)房測(cè)試環(huán)境===>IDC機(jī)房正式環(huán)境
防止在正式環(huán)境發(fā)生錯(cuò)誤捺球,從而影響用戶體驗(yàn)缸浦,業(yè)務(wù)穩(wěn)定。
企業(yè)故障案例:No space left on device常見企業(yè)故障案例
磁盤滿的報(bào)錯(cuò)氮兵,原因往往是inode被占滿了裂逐。
df -i
因?yàn)槎〞r(shí)任務(wù)沒有加&>/dev/null,定時(shí)任務(wù)執(zhí)行的時(shí)候把輸出給系統(tǒng)root發(fā)郵件泣栈。
郵件服務(wù)器postfix服務(wù)默認(rèn)不開卜高,這些給系統(tǒng)發(fā)的郵件就會(huì)堆在臨時(shí)目錄(大量小文件存在)企業(yè)故障案例:程序通過手動(dòng)可以執(zhí)行,放定時(shí)任務(wù)里不執(zhí)行南片。
export變量生產(chǎn)案例
定時(shí)任務(wù)在執(zhí)行腳本的時(shí)候掺涛,多數(shù)情況沒辦法加載環(huán)境變量,特別是/etc/profile疼进。
登錄后怎么操作都對(duì)薪缆,但是就是放到定時(shí)任務(wù)不行。
命令行:bash登錄方式
1.手工登錄后颠悬,加載所有環(huán)境變量(~/.bash_profile,~/.bash_rc,/etc/profile,/etc/bashrc)
2.定時(shí)任務(wù)執(zhí)行腳本屬于非登錄狀態(tài)(/etc/bashrc)矮燎。
實(shí)踐檢驗(yàn),定時(shí)任務(wù)能否自動(dòng)加載/etc/bashrc和/etc/profile文件赔癌。
所有運(yùn)維都會(huì)把變量放到此文件/etc/profile诞外,把這個(gè)文件里的變量定義
在執(zhí)行的腳本中 重新定義。
具體為crond執(zhí)行Shell時(shí)只能識(shí)別為數(shù)不多的系統(tǒng)環(huán)境變量灾票,普通環(huán)境變量一般是無法識(shí)別的峡谊,如果在編寫的腳本中需要使用變量,最好使用export重新聲明下該變量,以確保腳本正確執(zhí)行既们。以后要將其作為一個(gè)開發(fā)基本規(guī)范寫上濒析。
用戶相關(guān)文件:
/etc/passwd 用戶所在文件
/etc/shadow 密碼所在文件
useradd oldboy 添加用戶實(shí)際上就是修改上述兩個(gè)文件
passwd oldboy? 改密碼實(shí)際上就是修改密碼所在文件
用戶組相關(guān)文件:
/etc/group? ? 用戶組所在文件
/etc/gshadow? 用戶組密碼所在文件(廢棄狀態(tài))
useradd oldboy 添加用戶實(shí)際上也會(huì)修改上述兩個(gè)文件(因?yàn)橐獎(jiǎng)?chuàng)建同名的用戶組)
groupadd sa 添加用戶組就是修改上述兩個(gè)文件
/etc/passwd文件:
Linux是命令行管理,平時(shí)輸入ls,cp啥纸,誰識(shí)別号杏,幫我們把我們想要的輸出呢?
這個(gè)工具就是bash(命令行解釋器)斯棒。 * 盾致? [abc]
CentOS7默認(rèn)解釋器是bash。
默認(rèn)shell就是/bin/bash
為什么默認(rèn)的家目錄在home下
為什么默認(rèn)的家目錄/home/用戶名下面有很多隱藏文件荣暮,從哪來的庭惜。
就是/etc/default/useradd文件配置的。