20191023模擬題

一. 簡答實驗題( 每題5分 ):

1. 請說出 5 個你熟悉的類 unix 系統名稱

redhat,CentOS,debian,ubuntu,suse,freebsd

2. 請寫出 5 個你熟悉的 Linux 軟件的網絡端口號和對應的軟件名稱。

httpd    80
nginx    80
mysql    3306
ftp        20,21
samba    137,138,139,445
NFS        111
rsync    873
smtp    25

3. CentOS7.6 和 Ubuntu18.04 網卡配置

-2 分(後面最好加上biosdevname=0)

#系統默認安裝完成後網卡名稱爲 ens33,請寫出如何使系統網卡名稱格式變爲 eth0 風格的步驟.
#CentOS7修改網卡
sed -ri '/^GRUB_CMDLINE/s/(.*)"/\1 net.ifnames=0 biosdevname=0"/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
#ubuntu修改網卡,改的時候要謹慎配置文件
sed -ri '/^GRUB_CMDLINE/s/(.*)"/\1 net.ifnames=0 biosdevname=0"/' /etc/default/grub
grub-mkconfig -o  /boot/grub/grub.cfg 
reboot

#修改完成後請分別寫出兩種系統配置網卡的過程,地址爲橋接網絡模型的 172.18.學號.200,並測試是否可以執行curl www.baidu.com 命令
# CentOS7配置
[root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.28.200
NATMASK=255.255.0.0
GATEWAY=172.18.0.1
DNS1=172.18.0.1
[root@node1 ~]# systemctl restart network
[root@node1 ~]# curl www.baidu.com -I
HTTP/1.1 200 OK

# ubuntu配置
root@ubuntu:~# grep -v ^# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [172.18.28.201/16]
      gateway4: 172.18.0.1
      nameservers:
        addresses:
          - 123.123.123.123
          - 8.8.8.8
root@ubuntu:~# netplan apply
root@ubuntu:~# curl www.baidu.com -I
HTTP/1.1 200 OK

4. 請寫出 ipv4 地址分類和每種類型中的私有網絡地址範圍

A類地址

(1)A類地址第1字節爲網絡地址,其它3個字節爲主機地址。
(2)A類地址範圍:1.0.0.1—126.255.255.254
(3)A類地址中的私有地址和保留地址: ① 10.X.X.X是私有地址範圍(10.0.0.0-10.255.255.255) ② 127.X.X.X是保留地址,用做循環測試用的。

B類地址

(1) B類地址第1字節和第2字節爲網絡地址,其它2個字節爲主機地址。
(2) B類地址範圍:128.0.0.1—191.255.255.254。
(3) B類地址的私有地址和保留地址 :① 172.16.0.0—172.31.255.255是私有地址 ② 169.254.X.X是保留地址。如果你的IP地址是自動獲取IP地址,而你在網絡上又沒有找到可用的DHCP服務器。就會得到其中一個IP。

C類地址

(1)C類地址第1字節、第2字節和第3個字節爲網絡地址,第4個個字節爲主機地址。另外第1個字節的前三位固定爲110。
(2)C類地址範圍:192.0.0.1—223.255.255.254。
(3)C類地址中的私有地址: 192.168.X.X是私有地址。(192.168.0.0-192.168.255.255)

D類地址

(1) D類地址不分網絡地址和主機地址,它的第1個字節的前四位固定爲1110。
(2) D類地址範圍:224.0.0.1—239.255.255.254

E類地址

(1) E類地址不分網絡地址和主機地址,它的第1個字節的前五位固定爲11110。
(2) E類地址範圍:240.0.0.1—255.255.255.254

5. 使用 xshell 連接 Linux 服務器時等待時間過長,請問您有什麼處理方法解決這個問題。

#一般都是服務器的ssh服務未優化
    sed '/^GSSAPIAuthentication/d' /etc/ssh/sshd_config -i
    sed '/^UseDNS/d' /etc/ssh/sshd_config -i
    echo "GSSAPIAuthentication no" >> /etc/ssh/sshd_config
    echo "UseDNS no" >> /etc/ssh/sshd_config
    systemctl restart sshd

6. shell 腳本編程 創建 60 個普通用戶,用戶名爲 magedu01 到 magedu60 用戶密碼爲Linux2019@38

[root@node1 ~]# cat useradd.sh 
#!/bin/bash
RED="\033[0;31m"
GREEN="\033[0;32m"
NO_COLOR="\033[0m"
usernameid=$(seq -w 01 60)
for i in ${usernameid};do
    username=magedu$i
    id ${username} &> /dev/null
    [ "$?" -eq 0 ] && { echo -e "${RED}${username} already exists${NO_COLOR}";continue; }
    useradd ${username}
    echo "${username}:Linux2019@38" | chpasswd
    id ${username} &> /dev/null
    [ "$?" -eq 0 ] && { echo -e "${GREEN}${username} created successfully${NO_COLOR}"; }
done
[root@node1 ~]# bash useradd.sh 
magedu01 created successfully
magedu02 created successfully
......

7. 使用 crontab 任務計劃,完成:每月27號晚上10到12點之間每分鐘執行一次 /root/backup.sh 腳本文件任務

[root@node1 ~]# echo '*/1 22,23 27 * * /bin/bash  /root/backup.sh' >> /var/spool/cron/root

8. 請在 mysql 中創建 school 數據庫,並在其中創建一個 student 表,表字段分別爲學號(stuid),姓名(name),年齡(age), 電話(tel),

請寫出上面的操作步驟和過程,並寫出 "查詢年齡大於平均年齡的前3名學生的姓名和年齡" 的sql語句

表結構如下:
MariaDB [school]> desc student;
+-------+--------------+------+-----+---------+----------------+| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| stuid | int(11)      | NO   | PRI | NULL    | auto_increment || name  | varchar(100) | NO   |     | NULL    |                |
| age   | int(11)      | NO   |     | NULL    |                || tel   | varchar(100) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+


所有學生數據如下:
MariaDB [school]> select * from student;
+-------+---------+-----+-----+
| stuid | name    | age | tel |+-------+---------+-----+-----+|     1 | magedu1 |  22 | 110 |
|     2 | magedu2 |  36 | 120 ||     3 | magedu3 |  39 | 999 |
|     4 | magedu4 |  19 | 666 ||     5 | magedu5 |  27 | 139 |
+-------+---------+-----+-----+
5 rows in set (0.00 sec)

MariaDB [school]>
# 建庫MariaDB [(none)]> create database school;# 建表MariaDB [school]> CREATE TABLE student(
    -> stuid int(11) PRIMARY KEY AUTO_INCREMENT,
    -> name varchar(100) NOT NULL,
    -> age int(11) NOT NULL,
    -> tel varchar(100) NOT NULL );
Query OK, 0 rows affected (0.00 sec)# 看錶結構MariaDB [school]> desc student;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| stuid | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | NO   |     | NULL    |                |
| age   | int(11)      | NO   |     | NULL    |                |
| tel   | varchar(100) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)#插入數據INSERT INTO student  (name,age,tel) VALUES ("magedu1",22,"110");
MariaDB [school]> INSERT INTO student  (name,age,tel) VALUES ("magedu2",36,"120"),("magedu3",39,"999"),("magedu4",19,"666"),("magedu5",27,"139");#查看錶數據MariaDB [school]> select * from student;
+-------+---------+-----+-----+
| stuid | name    | age | tel |
+-------+---------+-----+-----+
|     1 | magedu1 |  22 | 110 |
|     2 | magedu2 |  36 | 120 |
|     3 | magedu3 |  39 | 999 |
|     4 | magedu4 |  19 | 666 |
|     5 | magedu5 |  27 | 139 |
+-------+---------+-----+-----+# 查詢年齡大於平均年齡的前3名學生的姓名和年齡MariaDB [school]> select name,age from student where age > ( select avg(age) from student) limit 3;
+---------+-----+
| name    | age |
+---------+-----+
| magedu2 |  36 |
| magedu3 |  39 |
+---------+-----+
2 rows in set (0.00 sec)

二. 擴展題 (每題30分)

-8分

1. 編寫 ansible playbook 實現在一臺 CentOS7 中編譯安裝 httpd2.4.41 和 php7.3.7 的 fpm 模式,實現 httpd 通過 socket 與 php-fpm 通信,並測試 php 頁面是否工作正常

# 參考:https://blog.51cto.com/14012942/2444885

2. httpd 服務器的訪問日誌保存在容量爲20G 的 /dev/sdb 磁盤中,對應的掛載路徑爲/data-http-log,編寫一個shell 腳本,每隔一個小時測試一下該磁盤的使用率是否超過70%,如果超過立刻將非本週的日誌移動到遠程服務器 172.18.0.100 服務器上,移動完成後,如果磁盤空間使用率依舊大於 70%, 則發郵件給 [email protected]提示報警,需要手動進行處理。

-2 分(羅裏吧嗦)

#vmware插入磁盤,
#觸發磁盤掃描
[root@node1 ~]# for i in `seq 0 2`;do echo - - - >  /sys/class/scsi_host/host$i/scan;done
root@node1 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk 
├─sda1   8:1    0   250M  0 part /boot
├─sda2   8:2    0 197.8G  0 part /
└─sda3   8:3    0     2G  0 part [SWAP]
sdb      8:16   0    20G  0 disk 
#格式化
[root@node1 ~]# fdisk /dev/sdb
n -> p -> 回車 -> 回車 -> w
[root@node1 ~]# partprobe
[root@node1 ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
└─sdb1   8:17   0  20G  0 part 
#創建文件系統並掛載
[root@node1 ~]# mkdir /data-http-log
[root@node1 ~]# echo '/dev/sdb1 /data-http-log   ext4  defaults,noatime  0 0' >> /etc/fstab 
[root@node1 ~]# mount -a
[root@node1 ~]# df -h /dev/sdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        20G   45M   19G   1% /data-http-log
#編寫腳本,發送郵件可以使用sendmail並配置發件人
#!/bin/bash
. /etc/profile
PARTITION=/dev/sdb1
NUMBER=70

USAGE=`df ${PARTITION} | awk -F'[ ]*|%'  '/^\/dev\/sd/ {print  $5}'`

mailmail(){
    #郵件服務已經配置測試好
    echo $1 | mail -s 'warning' [email protected]
}
[ "${USAGE}" -gt "${NUMBER}" ] && \
    {
        #ssh可連,目標存在
        find /data-http-log/ -type f -mtime +7 -exec scp {} [email protected]:/backup/httpd-log/ \;
        [ "$?" -eq 0 ] && \ 
        {
            find /data-http-log/ -type f -mtime +7 -delete;    
        } || mailmail "backup failed..."
    }
[ "${USAGE}" -gt "${NUMBER}" ] && \
    {
        mailmail "${PARTITION} usage over 70 percent..."
    }
#計劃任務
[root@node1 ~]# echo '* */1 * * * /bin/bash /data/scripts/disk-usage-check.sh' >> /var/spool/cron/root


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