定時(shí)任務(wù)要領(lǐng)
????????* ?* ?* ?* ?* /bin/sh ?(索要執(zhí)行的任務(wù)主題) ?&>/dev/null ?(或 >/dev/null 2>&1)
如何調(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)整提前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 ?./date >/tmp/tar.log
????????(注意點(diǎn):有的程序只能執(zhí)行一次前鹅,一定要在測(cè)試環(huán)境測(cè)試好,然后直接復(fù)制到測(cè)試)
代碼發(fā)布流程:
????????辦公室測(cè)試環(huán)境==>IDC機(jī)房測(cè)試環(huán)境===>IDC機(jī)房正式環(huán)境
????????防止在正式環(huán)境發(fā)生錯(cuò)誤峭梳,從而影響用戶體驗(yàn)舰绘,業(yè)務(wù)穩(wěn)定
No space left on device ? 常見的企業(yè)故障案列
????????磁盤滿的報(bào)錯(cuò),原因往往是 inode被占滿了
????????因?yàn)槎〞r(shí)任務(wù)沒有加&>./dev/null葱椭,定時(shí)任務(wù)執(zhí)行的時(shí)候把輸出給系統(tǒng)root發(fā)郵件捂寿。
????????郵件服務(wù)器postfix服務(wù)默認(rèn)不開,這些給系統(tǒng)發(fā)的郵件
? ??????/var/spool/clientmqueue/ centos6
????????/var/spool/postfix/maildrop/ centos7
企業(yè)故障案例:程序通過手動(dòng)可以執(zhí)行孵运,放定時(shí)任務(wù)里不執(zhí)行秦陋。
????????crontab文件中沒有配置環(huán)境變量引起的
????????系統(tǒng)自動(dòng)執(zhí)行任務(wù)調(diào)度時(shí),除了默認(rèn)的環(huán)境治笨,是不會(huì)加載任何其他環(huán)境變量的驳概。
????????因此就需要在crontab文件中指定任務(wù)運(yùn)行所需的所有環(huá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ī)范寫上琉苇。
第十四章 Linux用戶管理知識(shí)與應(yīng)用實(shí)踐
1.1嘲玫、用戶及用戶組配置文件
????用戶相關(guān)文件:
????????/etc/passwd ? ?用戶所在文件
????????/etc/shadow ? ?密碼所在文件
????????useradd oldboy ?添加用戶實(shí)際上就是修改上述兩個(gè)文件
????????passwd ?oldboy ?改密碼實(shí)際上就是修改密碼
????用戶組相關(guān)文件
????????/etc/group ? ? 用戶組所在文件
????????/etc/gshaow ?用戶組密碼所在文件(廢棄狀態(tài))
????????useradd oldboy ? ?添加用戶實(shí)際上就是修改上述兩個(gè)文件(因?yàn)橐獎(jiǎng)?chuàng)建同名用戶組)
????????groupadd ?sa ?添加用戶組就是修改上述兩個(gè)文件
????????md5sum 給文件設(shè)置指紋(計(jì)算和檢查MD5數(shù)字信息)
????Linux是命令行管理,平時(shí)輸入ls,cp并扇,誰識(shí)別去团,幫我們把我們想要的輸出呢?
????這個(gè)工具就是bash(命令行解釋器)穷蛹。 * 土陪? [abc]
用戶登錄:輸入命令,希望哪個(gè)解釋器解釋(結(jié)尾列決定)
????????/etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
????????CentOS7默認(rèn)解釋器是bash肴熏。
/etc/passwd里的解釋器
????????[root@oldboyedu ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c
????????6 ?/bin/bash?
????????1/bin/sync
????????1/sbin/halt
????????18/sbin/nologin
????????1/sbin/shutdown
????????[root@oldboyedu ~]# cat /etc/shells
????????/bin/sh??
????????/bin/bash?
????????/usr/bin/sh?
????????/usr/bin/bash
bash是sh的擴(kuò)展鬼雀,sh是bash的軟連接。
passwd中對(duì)各字段的詳細(xì)說明
給開發(fā)人員添加用戶蛙吏,盡量給截止時(shí)間
????????[root@oldboyedu ~]# useradd gongli2 -g incahome
????????[root@oldboyedu ~]# id gongli2
????????uid=1006(gongli2) gid=1004(incahome) groups=1004(incahome)
????????/etc/default/useradd文件 ?useradd命令的配置文件
????????默認(rèn)shell就是/bin/bash
????????為什么默認(rèn)的家目錄在home下
????????為什么默認(rèn)的家目錄/home用戶名在面有很多隱藏文件源哩,從哪來的
修改方法:
????????useradd -D -s /bin/sh 相當(dāng)于vim編輯/etc/default/useradd文件。
????????[root@oldboyedu ~]# useradd -D -s /bin/sh
????????You have new mailin/var/spool/mail/root
????????[root@oldboyedu ~]# cat /etc/default/useradd?
????????# useradd defaults file
????????GROUP=100
????????HOME=/home
????????INACTIVE=-1
????????EXPIRE=
????????SHELL=/bin/sh
????????SKEL=/etc/skel
????????CREATE_MAIL_SPOOL=yes
/etc/skel目錄鸦做,創(chuàng)建用戶就會(huì)把此目錄下的文件拷貝到/home/目錄名下
/etc/skel ?為每個(gè)用戶提供用戶環(huán)境變量的目錄励烦。
????????[root@oldboyedu ~]# ls /etc/skel -A.bash_logout .bash_profile ????????.bashrc===================================================.bash_logout ????????.bash_profile .bashrc 用戶環(huán)境變量
/etc/login.defs ? 添加用戶要用的文件(登錄的定義文件)【了解】
刪除用戶相關(guān)命令 userdel
? ??????語法: ?userdel ?[選項(xiàng)] [用戶名]
? ??????參數(shù): ?-f:強(qiáng)制刪除
? ???????-r:遞歸刪除用戶目錄及下面內(nèi)容,刪除前備份或確認(rèn)目錄下無重要內(nèi)容
不交互設(shè)置密碼:
方法1:
????????[root@oldboyedu?~]#?echo?123456|passwd?--stdin?oldgirl
????????Changing?password?for?user?oldgirl.
????????passwd:?all?authentication?tokens?updated?successfully.
方法2:
????????[root@oldboyedu ~]# echo 123456 >pass
????????[root@oldboyedu ~]# cat pass
????????123456
????????[root@oldboyedu ~]# passwd --stdin oldgirl <pass
????????Changing password for user oldgirl.
????????passwd: all authentication tokens updated successfully