Linux基礎(chǔ)day13


定時(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è)試和觀(guān)察。
    
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、通過(guò)腳本日志輸出調(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ò)誤,從而影響用戶(hù)體驗(yàn),業(yè)務(wù)穩(wěn)定。



企業(yè)故障案例:No space left on device常見(jiàn)企業(yè)故障案例
磁盤(pán)滿(mǎn)的報(bào)錯(cuò),原因往往是inode被占滿(mǎn)了。
df -i
因?yàn)槎〞r(shí)任務(wù)沒(méi)有加&>/dev/null,定時(shí)任務(wù)執(zhí)行的時(shí)候把輸出給系統(tǒng)root發(fā)郵件。
郵件服務(wù)器postfix服務(wù)默認(rèn)不開(kāi),這些給系統(tǒng)發(fā)的郵件就會(huì)堆在臨時(shí)目錄(大量小文件存在)
/var/spool/clientmqueue/      6 
/var/spool/postfix/maildrop/  7 


企業(yè)故障案例:程序通過(guò)手動(dòng)可以執(zhí)行,放定時(shí)任務(wù)里不執(zhí)行。
export變量生產(chǎn)案例

定時(shí)任務(wù)在執(zhí)行腳本的時(shí)候,多數(shù)情況沒(méi)辦法加載環(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)境變量一般是無(wú)法識(shí)別的,如果在編寫(xiě)的腳本中需要使用變量,最好使用export重新聲明下該變量,以確保腳本正確執(zhí)行。以后要將其作為一個(gè)開(kāi)發(fā)基本規(guī)范寫(xiě)上。


1)在每周6的凌晨3:15執(zhí)行/home/shell/collect.pl,并將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出到/dev/null設(shè)備,請(qǐng)寫(xiě)出crontab中的語(yǔ)句。
######oldboy...
15 03 * * 6 /bin/perl /home/shell/collect.pl >/dev/null 2>&1

2)crontab在11月份內(nèi),每天的早上6點(diǎn)到12點(diǎn)中,每隔2小時(shí)執(zhí)行一次/usr/bin/httpd.sh,
怎么實(shí)現(xiàn) ?
00 6-12/2 * 11 * /bin/sh /usr/bin/httpd.sh &>/dev/null


老男孩Linux58期day18
用戶(hù)管理知識(shí):

用戶(hù)相關(guān)文件:
/etc/passwd 用戶(hù)所在文件
/etc/shadow 密碼所在文件
useradd oldboy 添加用戶(hù)實(shí)際上就是修改上述兩個(gè)文件
passwd oldboy  改密碼實(shí)際上就是修改密碼所在文件


用戶(hù)組相關(guān)文件:
/etc/group    用戶(hù)組所在文件
/etc/gshadow  用戶(hù)組密碼所在文件(廢棄狀態(tài))
useradd oldboy 添加用戶(hù)實(shí)際上也會(huì)修改上述兩個(gè)文件(因?yàn)橐獎(jiǎng)?chuàng)建同名的用戶(hù)組)
groupadd sa 添加用戶(hù)組就是修改上述兩個(gè)文件


md5sum 給文件設(shè)置指紋(計(jì)算和檢查MD5數(shù)字信息)

[root@oldboyedu ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
2fe9f002726ed0a138d67cd44722f1a6  /etc/passwd
c2ca41415dca17f1a3dc3c286a9b9bff  /etc/shadow
c475144a13d87a400b5e16fe6bd70baf  /etc/group
659ef4f533df0fa7e457f87755fb1c27  /etc/gshadow


[root@oldboyedu ~]# useradd bingbing

文件發(fā)生變化
[root@oldboyedu ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
39d60eff90ecd0326fe59e6464b464ad  /etc/passwd
0aa8d3b157f042876ec0190a2808a377  /etc/shadow
cee8bc6e85f9dfb9dc0a04e452e834f4  /etc/group
cdfd26351f409ee32fca53a22ad15912  /etc/gshadow

[root@oldboyedu ~]# grep bingbing  /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
/etc/shadow:bingbing:!!:17980:0:99999:7:::
/etc/group:bingbing:x:1006:
/etc/gshadow:bingbing:!::


/etc/passwd文件:

Linux是命令行管理,平時(shí)輸入ls,cp,誰(shuí)識(shí)別,幫我們把我們想要的輸出呢?
這個(gè)工具就是bash(命令行解釋器)。 * ? [abc]


用戶(hù)登錄:輸入命令,希望哪個(gè)解釋器解釋?zhuān)ńY(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的軟連接。

[root@oldboyedu ~]# ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 Mar  4 11:15 /bin/sh -> bash


/bin/bash /server/scripts/bak.sh

[root@oldboyedu ~]# tail -1 /etc/shadow
bingbing  用戶(hù)
:!!       密碼
:17980    最近更改密碼的時(shí)間
:0        禁止修改密碼的天數(shù)
:99999    用戶(hù)必須更改口令的天數(shù)
:7        警告更改密碼的期限
:         在用戶(hù)密碼過(guò)期之后到禁用賬戶(hù)的天數(shù)
:         從1970年1月1日起,到用戶(hù)被禁用的天數(shù)
:         保留

/etc/group
/etc/gshadow


[root@oldboyedu ~]# useradd gongli -u 888 -s /sbin/nologin -M

[root@oldboyedu ~]# tail -1 /etc/passwd
gongli:x:888:1007::/home/gongli:/sbin/nologin

bingbing:x:1004:1006::/home/bingbing:/bin/bash


[root@oldboyedu ~]# useradd gongli1 -c "beautify woman" -d /tmp -e '2020/10/20'
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

[root@oldboyedu ~]# tail -1 /etc/passwd
gongli1:x:1005:1008:beautify woman:/tmp:/bin/bash

[root@oldboyedu ~]# chage -l gongli1
Last password change                    : Mar 25, 2019
Password expires                    : never
Password inactive                   : never
Account expires                     : Oct 20, 2020  =================
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7

給開(kāi)發(fā)等人員添加用戶(hù),盡量給截止時(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/用戶(hù)名下面有很多隱藏文件,從哪來(lái)的。

就是/etc/default/useradd文件配置的。

[root@oldboyedu ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

修改方法:
useradd -D -s /bin/sh   相當(dāng)于vim編輯/etc/default/useradd文件。
[root@oldboyedu ~]# useradd -D -s /bin/sh
You have new mail in /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

[root@oldboyedu ~]# useradd chenglong1
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# tail -1 /etc/passwd
chenglong1:x:1007:1009::/home/chenglong1:/bin/sh
[root@oldboyedu ~]# chage -l chenglong1
Last password change                    : Mar 25, 2019
Password expires                    : never
Password inactive                   : never
Account expires                     : Oct 21, 2020
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7


/etc/skel目錄,創(chuàng)建用戶(hù)默認(rèn)就會(huì)把此目錄下的文件拷貝到/home/用戶(hù)名下。
/etc/skel 為每個(gè)用戶(hù)提供用戶(hù)環(huán)境變量的目錄。
[root@oldboyedu ~]# ls /etc/skel -A
.bash_logout  .bash_profile  .bashrc
===================================================
.bash_logout  .bash_profile  .bashrc 用戶(hù)環(huán)境變量

登錄系統(tǒng)后,命令行出現(xiàn)如下提示:為什么?
[root@oldboyedu /home/chenglong1]# su - chenglong1
-sh-4.2$ 
-sh-4.2$ 
解答:用戶(hù)的環(huán)境變量缺失導(dǎo)致的。
執(zhí)行如下命令解決
-sh-4.2$ cp /etc/skel/.bash* .
-sh-4.2$ source ./.bash_profile ./.bashrc 
[chenglong1@oldboyedu ~]$ 
[chenglong1@oldboyedu ~]$ 

-sh-4.2$ export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$'
[chenglong1@oldboyedu ~]$

添加用戶(hù)要用的文件
/etc/login.defs 了解

添加用戶(hù)要用的文件 
/etc/login.defs  /etc/skel /etc/default/useradd 


編輯/etc/passwd,通過(guò)注釋來(lái)刪除。
#chenglong1:x:1007:1009::/home/chenglong1:/bin/sh
"/etc/passwd" 30L, 1362C written                                                              
[root@oldboyedu ~]# su - chenglong1
su: user chenglong1 does not exist


[root@oldboyedu ~]# useradd -u 9999 -s /bin/sh -M -g sa -c "老男孩" -e "2019/5/1" zongsheng
[root@oldboyedu ~]# tail -1 /etc/passwd
zongsheng:x:9999:1003:老男孩:/home/zongsheng:/bin/sh
[root@oldboyedu ~]# id zongsheng
uid=9999(zongsheng) gid=1003(sa) groups=1003(sa)
[root@oldboyedu ~]# chage -l zongsheng
Last password change                    : Mar 25, 2019
Password expires                    : never
Password inactive                   : never
Account expires                     : May 01, 2019
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7

usermod -u 8888 -s /bin/bash -m /home/zongsheng -g incahome -c "男孩" -e "2020/5/1" 
[root@oldboyedu ~]# usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
[root@oldboyedu ~]# chage -l zongsheng
Last password change                    : Mar 25, 2019
Password expires                    : never
Password inactive                   : never
Account expires                     : May 01, 2020
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7
[root@oldboyedu ~]# id zongsheng
uid=8888(zongsheng) gid=1004(incahome) groups=1004(incahome)
[root@oldboyedu ~]# tail -1 /etc/passwd
zongsheng:x:8888:1004:男孩:/home/zongsheng:/bin/bash
You have new mail in /var/spool/mail/root

usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
usermod -m /home/zongsheng zongsheng

不交互設(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.


[root@oldboyedu ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}' >user.log
[root@oldboyedu ~]# cat user.log
gongli1:oldboy
gongli2:oldboy
chenglong1:oldboy
zongsheng:oldboy

chpasswd對(duì)密碼文件的要求是上述user.log

方法1:
[root@oldboyedu ~]# chpasswd<user.log 
方法2:
[root@oldboyedu ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}'|chpasswd 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容