調試定時任務與用戶管理
4脊凰、調整系統(tǒng)時間(測試環(huán)境還湊合) 2
1.No space left on device常見企業(yè)故障案例 2
2.程序通過手動可以執(zhí)行,放定時任務里不執(zhí)行狸涌。 2
/var/log/cron
學會最小化排除:
先清空朝捆,>/var/log/cron
然后在測試和觀察。
把頻率調快芙盘。
00 03執(zhí)行脸秽,當前5:00何陆,咱們就把時間調整 05 05,有個5分鐘提前量。
4豹储、調整系統(tǒng)時間(測試環(huán)境還湊合)
00 03執(zhí)行,把系統(tǒng)時間調整到2:55淘这。
定時任務輸出
* * * * * ?/bin/sh /server/scripts/bak.sh &>/tmp/bak.log
腳本輸出:
tar zcvf oldboy.tar.gz ?./data &>/tmp/tar.log
注意點:
有時候程序只能執(zhí)行一次。一定要在測試環(huán)境測試好铝穷,然后直接復制到正式钠怯。
代碼發(fā)布流程:
辦公室測試環(huán)境===>IDC機房測試環(huán)境===>IDC機房正式環(huán)境
防止在正式環(huán)境發(fā)生錯誤,從而影響用戶體驗曙聂,業(yè)務穩(wěn)定晦炊。
1.No space left on device常見企業(yè)故障案例
磁盤滿的報錯,原因往往是inode被占滿了。
df -i
因為定時任務沒有加&>/dev/null断国,定時任務執(zhí)行的時候把輸出給系統(tǒng)root發(fā)郵件贤姆。
郵件服務器postfix服務默認不開,這些給系統(tǒng)發(fā)的郵件就會堆在臨時目錄(大量小文件存在)
/var/spool/clientmqueue/ ??????
/var/spool/postfix/maildrop/ ??
2.程序通過手動可以執(zhí)行稳衬,放定時任務里不執(zhí)行霞捡。
export變量生產案例
定時任務在執(zhí)行腳本的時候,多數(shù)情況沒辦法加載環(huán)境變量薄疚,特別是/etc/profile碧信。
登錄后怎么操作都對,但是就是放到定時任務不行街夭。
1.手工登錄后砰碴,加載所有環(huán)境變量(~/.bash_profile,~/.bash_rc,/etc/profile,/etc/bashrc)
2.定時任務執(zhí)行腳本屬于非登錄狀態(tài)(/etc/bashrc)。
實踐檢驗板丽,定時任務能否自動加載/etc/bashrc和/etc/profile文件呈枉。
所有運維都會把變量放到此文件/etc/profile,把這個文件里的變量定義
在執(zhí)行的腳本中重新定義檐什。
具體為crond執(zhí)行Shell時只能識別為數(shù)不多的系統(tǒng)環(huán)境變量碴卧,普通環(huán)境變量一般是無法識別的,如果在編寫的腳本中需要使用變量乃正,最好使用export重新聲明下該變量住册,以確保腳本正確執(zhí)行。以后要將其作為一個開發(fā)基本規(guī)范寫上瓮具。
/etc/passwd用戶所在文件
/etc/shadow密碼所在文件
useradd oldboy添加用戶實際上就是修改上述兩個文件
passwd oldboy改密碼實際上就是修改密碼所在文件
/etc/group用戶組所在文件
/etc/gshadow用戶組密碼所在文件(廢棄狀態(tài))
useradd oldboy添加用戶實際上也會修改上述兩個文件(因為要創(chuàng)建同名的用戶組)
groupadd sa添加用戶組就是修改上述兩個文件
md5sum給文件設置指紋(計算和檢查MD5數(shù)字信息)
Linux是命令行管理荧飞,平時輸入ls,cp,誰識別名党,幫我們把我們想要的輸出呢叹阔?
這個工具就是bash(命令行解釋器)。 * 传睹? [abc]
用戶登錄:輸入命令耳幢,希望哪個解釋器解釋(結尾列決定)
/etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
CentOS7默認解釋器是bash。
[root@oldboyedu ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c
[root@oldboyedu ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
bash是sh的擴展欧啤,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用戶
:!!密碼
:17980最近更改密碼的時間
:0禁止修改密碼的天數(shù)
:99999用戶必須更改口令的天數(shù)
:7警告更改密碼的期限
: 在用戶密碼過期之后到禁用賬戶的天數(shù)
: 從1970年1月1日起,到用戶被禁用的天數(shù)
: 保留
用戶組所在文件/etc/group
用戶組密碼所在文件/etc/gshadow
給開發(fā)等人員添加用戶邢隧,盡量給截止時間店印。
[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
[root@oldboyedu ~]# useradd gongli2 -g incahome
[root@oldboyedu ~]# id gongli2
uid=1006(gongli2) gid=1004(incahome) groups=1004(incahome)
useradd命令的配置文件
默認shell就是/bin/bash
默認的家目錄在home下
默認的家目錄/home/用戶名下面有很多隱藏文件,從哪來的倒慧。
就是/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相當于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
創(chuàng)建用戶默認就會把此目錄下的文件拷貝到/home/用戶名下炫贤。
/etc/skel為每個用戶提供用戶環(huán)境變量的目錄溅固。
[root@oldboyedu ~]# ls /etc/skel -A
.bash_logout ?.bash_profile ?.bashrc
===================================================
.bash_logout ?.bash_profile ?.bashrc用戶環(huán)境變量
登錄系統(tǒng)后,命令行出現(xiàn)如下提示:為什么照激?
[root@oldboyedu /home/chenglong1]# su - chenglong1
-sh-4.2$
-sh-4.2$
解答:用戶的環(huán)境變量缺失導致的发魄。
執(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 ~]$
添加用戶要用的文件
/etc/login.defs
添加用戶要用的文件
/etc/login.defs ?/etc/skel /etc/default/useradd
編輯/etc/passwd,通過注釋來刪除。
#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
不交互設置密碼:
[root@oldboyedu ~]# echo 123456|passwd --stdin oldgirl
Changing password for user oldgirl.
passwd: all authentication tokens updated successfully.
[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對密碼文件的要求是上述user.log
[root@oldboyedu ~]# chpasswd<user.log
[root@oldboyedu ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}'|chpasswd