老男孩教育-第4周課前測試考試題

第4章 第4周課前測試考試題

4.1 定時任務規則的含義01

第1題 如果在某用戶的crontab文件中有以下記錄,該行中的命令多久執行一次(RHCE考試題)?(  ) 30 4 * * 3 mycmd 

A. 每小時。 B. 每週。 C. 每年三月中每小時一次。

解答:每週三的4點30分,執行mycmd。

4.2 定時任務規則的含義02

第2題 如果在某用戶的crontab文件中有以下記錄,該行中的命令多久執行一次(RHCE考試題)?( )*/5 * * * * mycmd 

A. 每5分鐘一次。 B. 每小時過5分鐘。 C. 不會運行,格式無效。

解答:每隔5分鐘,執行mycmd。

4.3 如何書寫定時任務

第3題 每隔1分鐘,打印一個+號到oldboy.log,請給出crontab完整命令。

解答:

crontab -e 
* * * * * echo '+' >>oldboy.log
*/1 * * * * echo '+' >>oldboy.log# 等價於上一條命令

4.4 定時任務:按小時打包文件

第4題 每隔2個小時將/etc/services文件打包備份到/tmp下(最好每次備份成不同的備份包)。

解答:

(1) 命令行測試

[root@lb01 ~]# cd /etc
[root@lb01 etc]# tar zcf /tmp/services_bak_`date +%F-%H`.tar.gz ./services

檢查

[root@lb01 etc]# ll /tmp/services_bak_2016-08-26-23.tar.gz
-rw-r--r-- 1 root root 127304 2016-08-26 23:21 /tmp/services_bak_2016-08-26-23.tar.gz
[root@lb01 etc]# du -h /tmp/services_bak_2016-08-26-23.tar.gz
128K    /tmp/services_bak_2016-08-26-23.tar.gz


(2) 編寫腳本

[root@lb01 etc]# mkdir /server/scripts -p# 規範腳本路徑
[root@lb01 scripts]# vim /server/scripts/services_bak.sh
#/bin/sh
cd /etc && \
/bin/tar zcf /tmp/services_bak_`date +%F-%H`.tar.gz ./services


(3) 測試腳本

[root@lb01 scripts]# /bin/sh /server/scripts/services_bak.sh
[root@lb01 scripts]# ll /tmp/services_bak_2016-08-26-23.tar.gz 
-rw-r--r-- 1 root root 127304 2016-08-26 23:28 /tmp/services_bak_2016-08-26-23.tar.gz


(4) 編輯crontab

[root@lb01 scripts]# crontab -e
## tar file '/etc/services' to /tmp every 2 hours by chendianhu at 2016.6.2 ##
00 */2 * * * /bin/sh /server/scripts/services_bak.sh >/dev/null 2>&1


(5) 調試crontab:利用date命令調整時間,最好關閉定時任務的時間同步來做測試

[root@lb01 scripts]# date -s "20160827 06:00:00"
Sat Aug 27 06:00:00 CST 2016
[root@lb01 scripts]# date +%F-%X
2016-08-27-06:00:01

4.5 定時任務:打包站點目錄

第5題 每天晚上12點,打包站點目錄/var/www/html備份到/data目錄下(最好每次備份按時間生成不同的備份包)

思路:

(1) 命令行測試

(2) 編寫腳本

(3) 測試腳本

(4) 編輯crontab

(5) 調試crontab

解答:

(1) 命令行測試

[root@lb01 ~]# mkdir -p /var/www/html
[root@lb01 ~]# touch /var/www/html/stu{1..10}.html
[root@lb01 ~]# cd /var/www/
[root@lb01 www]# tar zcf /data/html_bak_`date +%F`.tar.gz ./html 
[root@lb01 www]# ll /data/html_bak_2016-08-27.tar.gz 
-rw-r--r-- 1 root root 220 2016-08-27 15:26 /data/html_bak_2016-08-27.tar.gz


(2) 編寫腳本

[root@lb01 www]# cd /server/scripts/
[root@lb01 scripts]# vim html_bak.sh
#/bin/sh
cd /var/www/ && \
/bin/tar zcf /data/html_bak_`/bin/date +%F -d "-1day"`.tar.gz ./html


(3) 測試腳本

[root@lb01 scripts]# /bin/sh html_bak.sh 
[root@lb01 scripts]# ll /data/
總用量 4
-rw-r--r-- 1 root root 220 2016-08-27 15:48 html_bak_2016-08-26.tar.gz


(4) 編輯crontab

[root@lb01 scripts]# crontab -e
##tar directory '/var/www/html' to /data at 00 hours every night by chendianhu at 2016.6.2##
00 00 * * * /bin/sh /server/scripts/html_bak.sh >/dev/null 2>&1


(5)   調試crontab

[root@lb01 scripts]# date
2016年 08月 27日 星期六 15:50:08 CST# 當前日期和時間
[root@lb01 scripts]# date -s "20160827 23:59:58"
2016年 08月 27日 星期六 23:59:58 CST# 修改日期和時間
[root@lb01 scripts]# date
2016年 08月 28日 星期日 00:00:00 CST# 到達零點
[root@lb01 scripts]# ll /data/html_bak_2016-08-27.tar.gz # 執行定時任務,打包
-rw-r--r-- 1 root root 220 2016-08-28 00:00 /data/html_bak_2016-08-27.tar.gz

4.6 定時任務:提示信息

第6題 每週六、日上午 9:00 和下午14:00 來老男孩這裏學習(執行程序/server/script/oldboy.sh 代替學習)。

解答:

(1) 命令行測試

[root@lb01 scripts]# echo 'go to oldboytaining learning linux'
go to oldboytaining learning linux

 (2)編寫腳本

[root@lb01 scripts]# vim /server/scripts/oldboy.sh 
#/bin/sh
echo 'go to oldboytaining learning linux' >>~/message.txt


(3) 測試腳本

[root@lb01 scripts]# /bin/sh /server/scripts/oldboy.sh
[root@lb01 scripts]# cat ~/message.txt 
go to oldboytaining learning linux

(4) 編輯crontab

[root@lb01 scripts]# crontab -e
##print message at every weeken by chendianhu at 2016.6.2##
00 09,14 * * 0,6 /bin/sh /server/scripts/oldboy.sh >/dev/null 2&>1


(5) 調試crontab:調整時間

[root@lb01 scripts]# date -s "20160828 08:59:59"
[root@lb01 scripts]# cat ~/message.txt

4.7 目錄或文件的作用

第7題 請描述下列路徑的內容是做什麼的?

/etc/sysctl.conf

/etc/rc.local

/etc/hosts

/etc/fstab

/var/log/secure

解答:

文件或目錄     作用

/etc/sysctl.conf 優化系統內核參數的文件

/etc/rc.local     存放開機自啓動程序命令的文件

/etc/hosts     局域網域名解析文件

/etc/fstab     開機自動掛載文件

/var/log/secure     系統安全日誌文件,依賴於rsyglog服務

4.8 正則表達式

第8題 請說出下列 grep 正則表達式的含義 

.(點號) 

\{n,m\} 

[^t] 

^[^t] 

解答:

符號 含義

^ 以……開頭,比如^w,代表以w開頭

$ 以……結尾,比如w$,代表以w結尾

.(點號) 代表且只能代表任意一個字符

\ 轉義字符,使有着特殊意義的字符,脫掉馬甲,恢復成正常字符

* 重複0個或多個前面的一個字符,比如:grep -n "a*" oldboy.log

\{n,m\} 重複字符n到m次,比如:grep -n "a\{3,4\}" oldboy.log,重複字符“a”3到4次

[^t] 匹配不包含^後面的任意一個字符,即除了字符t,其它的全部匹配(過濾出來)

^[^t] 匹配以(非字符t)開頭的字符


4.9 vi常用命令

第9題 根據中文給出命令

(1) 退出並保存

(2) 退出並強制保存

(3) 強制退出,但不保存

(4) 光標移動到文件的最後一行

(5) 光標移動到文件的第一行

(6) 從光標所在位置將光標移動到當前行的開頭

(7) 從光標所在位置將光標移動到當前行的結尾

(8) 取消上一次的動作

(9) 刪除一行

(10)   向下搜索

(11)   向上搜索 

解答:

命令         作用

:wq         退出並保存

:wq!         退出並強制保存

:q!         強制退出,但不保存

Shift+g(G)     光標移動到文件的最後一行

gg         光標移動到文件的第一行

Shift+6(^) | home | 0 從光標所在位置將光標移動到當前行的開頭

Shift+4($) | end | Shift+a 從光標所在位置將光標移動到當前行的結尾

u         取消上一次的動作

dd         刪除一行

/char         向下搜索,繼續搜索n,反向搜索N

?char         向上搜索, 繼續搜索n,反向搜索N

擴展:

命令         功能說明

i         命令模式==>編輯模式,在光標位置前插入字符

a         命令模式==>編輯模式,在光標位置後插入字符

o         命令模式==>編輯模式,在當前行下方插入新的一行,並從行首開始

Esc         編輯模式==>命令模式

:set nu         顯示行號

:set nonu     不顯示行號

yy         複製光標當前所在行

3yy         複製光標當前所在行以及下面2行,即複製3行的內容

p         粘貼

10dd         刪除光標當前所在行,以及下面的兩行

4.10 chmod命令修改文件權限

第10題 授權oldboy目錄及其子目錄755的權限,請給出命令。

思路:

利用chmod命令可以修改文件的權限,加-R參數可以遞歸修改目錄下的文件和子目錄的文件權限。

解答:

[root@oldboy ~]# chmod -R 755 /oldboy/# -R參數:遞歸
[root@oldboy ~]# ls -ld /oldboy/ /oldboy/a/# 驗證
drwxr-xr-x. 3 root root 4096 May 11 16:46 /oldboy/
drwxr-xr-x. 3 root root 4096 May 11 16:46 /oldboy/a/

總結:

chmod - change file mode bits#修改文件的權限位
-R, --recursive  change files and directories recursively


4.11 chown命令修改文件的屬主和屬組

第11題 把oldboy目錄及其子目錄的屬主改爲oldboy,組改爲root,請給出命令。

思路:

利用chown命令可以修改文件的屬主和屬組,加-R參數可以遞歸修改目錄下的文件和子目錄的文件屬主和屬組信息。

解答:

[root@oldboy ~]# chown -R oldboy.root /oldboy/# -R參數:遞歸
[root@oldboy ~]# chown -R oldboy:root /oldboy/# 格式【屬主:屬組 == 屬主.屬組】
[root@oldboy ~]# ls -ld /oldboy/ /oldboy/a/# 驗證
drwxr-xr-x. 3 oldboy root 4096 May 11 16:46 /oldboy/
drwxr-xr-x. 3 oldboy root 4096 May 11 16:46 /oldboy/a/

總結:

chown - change file owner and group  
# 修改文件的屬主和屬主


4.12 考查umask的作用

第12題 描述下umask的作用,並舉例。

解答:

umask:權限掩碼。作用:配置文件的默認權限。

1. root用戶umask值默認爲:0022

新建一個文件時,文件的權限肯定是644(666-022)

新建一個目錄時,目錄的權限肯定是755(777-022)

原因:目錄權限755和文件權限644是一個目錄或普通文件安全的邊界。

[root@oldboy ~]# touch test.txt# 新建文件
[root@oldboy ~]# mkdir test# 新建目錄
[root@oldboy ~]# ls -ld test.txt test
drwxr-xr-x. 2 root root 4096 May 11 17:21 test# 目錄默認權限755
-rw-r--r--. 1 root root 0 May 11 17:20 test.txt# 文件默認權限644

2. 普通用戶umask值默認爲:0002

新建一個文件時,文件的權限肯定是664(666-002)

新建一個目錄時,目錄的權限肯定是775(777-002)

原因:普通用戶自己創建的文件,屬主和屬組權限當然可以給大些。

[oldboy@oldboy ~]$ touch test.txt# 新建文件
[oldboy@oldboy ~]$ mkdir test1# 新建目錄
[oldboy@oldboy ~]$ ls -ld test.txt test1
drwxrwxr-x. 2 oldboy oldboy 4096 May 11 17:15 test1# 目錄默認權限775
-rw-rw-r--. 1 oldboy oldboy    0 May 11 17:15 test.txt# 文件默認權限664

總結:

1. umask值是可以改的,但一般不改。

2. 文件權限的計算方法有奇偶之分,當umask是偶數時,目錄就用777-umask,文件就用666-umask;當umask是奇數時,計算方法如下:

假設umask值爲:045(哪個數字位是奇數,就要給這個數字位加1處理)

6 6 6 ==>文件的起始權限值

0 4 5  -     ==>umask的值

-----------------

6 2 1 ==>由於umask的最後一位數字是5,所以,在其他用戶位要再加1

0 0 1  +

-----------------

6 2 2

3. 目錄權限的計算方法無奇偶之分,直接相減即可。


4.13 考查如何添加用戶

第13題 添加一個用戶oldboy,並指定屬於sa組,要求組ID爲801,uid爲808,並且不建立家目錄及禁止其登錄。

思路:

先創建用戶的屬組,再用useradd命令添加用戶。

解答:

[root@oldboy ~]# groupadd -g 801 sa# 先添加sa組,-g指定組ID
[root@oldboy ~]# useradd -g sa -u 808 -M -s /sbin/nologin oldboy
# -g指定主組,-u指定uid,-M代表不創建家目錄,-s指定用戶的登錄shell
# -G指定所屬的附加組,-m代表創建用戶的家目錄
[root@oldboy ~]# tail -1 /etc/passwd# 看是否在用戶配置文件中有了新用戶的記錄
oldboy:x:808:801::/home/oldboy:/sbin/nologin
# 可以看到用戶的家目錄,用戶的shell爲/sbin/nologin
[root@oldboy ~]# id oldboy# 看用戶的uid,所屬組(組uid)
uid=808(oldboy) gid=801(sa) groups=801(sa)
[root@oldboy ~]# ls -ld /home/oldboy# 驗證是否創建家目錄
ls: cannot access /home/oldboy: No such file or directory

總結:

1. 用戶的登錄shell可以用下面這條命令來查看:

[root@oldboy ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

2. id + 用戶名:可以看到用戶的uid和所屬(附加)組的gid

3. useradd命令的常用參數

useradd - create a new user or update default new user information
-c, --comment COMMENT# 描述信息
-d, --home HOME_DIR# 指定用戶的家目錄
-e, --expiredate EXPIRE_DATE(YYYY-MM-DD)# 指定用戶的過期時間
-g, --gid GROUP# 指定用戶的主組
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]# 指定用戶的附加組
-m, --create-home# 強制創建家目錄
-M  Do not create the user's home directory# 不創建家目錄
-s, --shell SHELL# 指定用戶的shell
-u, --uid UID# 指定用戶的UID

4.14 查看用戶的uid和所屬組

第14題 如何查看用戶的uid及屬於的組信息。

思路:

id命令搞定。

解答:

[root@oldboy ~]# id oldboy
uid=808(oldboy) gid=801(sa) groups=801(sa),802(teachers)
[root@oldboy ~]# grep oldboy /etc/passwd
oldboy:x:808:801::/home/oldboy:/sbin/nologin
# uid爲808;所屬主組爲sa,gid爲801;所屬附加組爲teachers,gid爲802。

總結:

id - print real and effective user and group IDs
# 打印用戶和組的ID信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章