1、yum源的配置與使用(5分)
1). 創(chuàng)建一個(gè)本地yum源
base源指向https://mirrors.aliyun.com/centos/7/os/x86_64/
epel源指向https://mirrors.aliyun.com/epel/7Server/x86_64/
2). 安裝開發(fā)包組
①
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enbale=1
gpgcheck=0
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enable=1
gpgcheck=0
②.yum groupinstall "Development Tools"
2呼伸、復(fù)制/etc/ssh/sshd_config 到/tmp/中并更名為sshd_config.bak肿嘲。將/tmp/sshd_config.bak文件中所有以非#號(hào)開頭與包含空白字符的行保存至/tmp/sshd_config中面褐。(5分)
cp /etc/sshd_config /tmp/sshd_config.bak
cat /tmp/sshd_config.bak |grep -Ev '^#|^[[:space:]]*$'>/tmp/sshd_config
3思杯、編寫腳本/root/bin/sysinfo.sh顯示當(dāng)前主機(jī)系統(tǒng)信息凑兰,包括主機(jī)名,操作系統(tǒng)版本遣蚀,內(nèi)核版本,CPU型號(hào)矾麻,內(nèi)存大小,硬盤分區(qū)(5分)
Vim /root/bin/sysinfo.sh
#!/bin/bash
hostname
cat /etc/redhat-release
uname -r
free -m
fdisk -l
Chmod +x /root/bin/sysinfo.sh
4妙同、給root用戶定義別名命令vimnet射富,相當(dāng)于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root執(zhí)行history命令時(shí)粥帚,顯示每個(gè)命令執(zhí)行的具體時(shí)間。(5分)
echo "alias vimnet="vim /etc/sysconfig//etc/sysconfig/network-scripts/ifcfg-ens33"" >> ~/.bashrc
echo 'HISTTIMEFORMAT="%F %T"' >> ~/.bash_profile
. ~/.bash_profile
. ~/.bashrc
5限次、指出軟鏈接與硬鏈接的異同之處(至少四處)(5分)
硬鏈接
1芒涡、硬鏈接必須在同一個(gè)分區(qū)中創(chuàng)建,不能跨分區(qū)卖漫,跨分區(qū)只能用軟鏈接
2费尽、硬鏈接不支持對(duì)目錄創(chuàng)建,硬鏈接不支持跨設(shè)備跨分區(qū)
3羊始、不復(fù)制原數(shù)據(jù)旱幼,僅分配一個(gè)inode號(hào)和文件名
4、硬鏈接文件使用同一個(gè)inode號(hào)
5突委、硬鏈接工作的相對(duì)路徑相對(duì)于當(dāng)前目錄
6柏卤、鏈接文件沒(méi)有依賴性關(guān)系,鏈接數(shù)會(huì)加1
軟鏈接
1匀油、可以對(duì)目錄進(jìn)行
2缘缚、可以跨分區(qū)
3、指向的是另一個(gè)文件的路徑敌蚜;其大小為指向的路徑字符串的長(zhǎng)度桥滨;不增加或減少目標(biāo)文件inode的引用計(jì)數(shù);
4弛车、刪除鏈接原文件齐媒,則鏈接指向失效
5、軟鏈接用相對(duì)路徑時(shí)相對(duì)的不是當(dāng)前工作目錄纷跛,而是相對(duì)軟鏈接工作路徑
6喻括、下載編譯安裝httpd 2.4最新版本,寫出安裝過(guò)程(5分)
1. httpd源碼下載
httpd2.4.25下載地址http://hc.apache.org/downloads.cgi
2.將下載的httpd源碼包復(fù)制到系統(tǒng)路徑下忽舟,再此存放到了路徑/app下双妨,然后tar解壓源碼包到當(dāng)前目錄下
cd /app
tar xvf httpd-2.4.25.tar.bz2
3. 安裝開發(fā)包組
yum groupinstall "Development Tools"
4. 查看幫助文件淮阐,了解如何安裝
cat README
cat INSTALL
5. cd /root/httpd-2.4.25 切換到軟件包目錄下
./configure --prefix=/app/apache --sysconfdir=/tmp/etc/ --bindir=/tmp/etc --enable-rewrite
指定所有文件默認(rèn)安裝在/app/apache目錄下,sysconfdir=/etc/apache/為/etc/配置文件存在目錄刁品,bin二進(jìn)制文件放在/tmp/bin目錄下泣特,--enable-rewrite為啟用重定向特性
在安裝過(guò)程觀察有無(wú)軟件包安裝錯(cuò)誤,若有挑随,則對(duì)應(yīng)安裝對(duì)應(yīng)的開發(fā)軟件包
yum install 包名-devel
6. make 根據(jù)makefile 文件状您,構(gòu)建應(yīng)用程序
7. make install 復(fù)制文件到相應(yīng)路徑
8. 安成功檢測(cè)
/etc/ /bin目錄存放在/tmp下,其他配置文件在/app/apache目錄下
9. 防火墻
centos6
service iptables stop 馬上禁用
chkconfig iptables off 下次開機(jī)禁用
centos7
systemctl stop firewalld.service 馬上禁用
systemctl disable firewalld.service 下次開機(jī)禁用
10. 訪問(wèn)測(cè)試
netstat -ntl 查看服務(wù)對(duì)應(yīng)端口是否打開
iptables -vnL 查看防火墻
/app/apache/bin/apachectl start 開啟httpd服務(wù)兜挨,apachectl的路徑為/app/apache/bin/apachectl
11. 將apachectl命令導(dǎo)入PATH環(huán)境變量
PATH=PATH:/app/apache/bin/apachectl
10. apachectl start 開啟服務(wù)
7膏孟、過(guò)濾ifconfig命令結(jié)果中所有大于0且小于255的三位數(shù)(5分)
ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
ifconfig | egrep -o "\<25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]"
8、將用戶mage被誤刪除的的家目錄恢復(fù)拌汇,復(fù)制/etc/shadow到mage家目錄中柒桑。并設(shè)置只有用戶wang可以讀取/home/mage/shadow(5分)
cp -a /etc/skel/ /home/mage
cd /home/mage
chown mage:mage mage/
chmod 700 mage/
cp /etc/shadow /home/mage
setfacl -m u:mage:r-- /home/mage/shadow
9、統(tǒng)計(jì)/var/log/httpd/access.log日志訪問(wèn)頻繁前十的地址噪舀,并從大到小排序(5分)
cut -d" " -f1 /var/log/httpd/access.log |sort|uniq -c| sort -nr|head -n10|tr -s " "|cut -d" " -f3
10魁淳、開啟兩個(gè)終端,將終端1 中輸入命令的執(zhí)行結(jié)果輸出与倡,并同時(shí)輸出到終端2 (5分)
echo "wangnan sb" > /dev/pts/1
11界逛、誤刪除/lib64/libc.so.6系統(tǒng)庫(kù)文件,如何恢復(fù)之纺座,實(shí)驗(yàn)說(shuō)明(5分)
先進(jìn)入系統(tǒng)修復(fù)模式下
Cp /lib64/libc.so.6 /mnt/sysimage/lib64 /mnt/sysimage為真實(shí)系統(tǒng)根目錄
12息拜、誤刪除rpm包命令,如何恢復(fù)之净响,實(shí)驗(yàn)說(shuō)明 (5分)
先進(jìn)入修復(fù)模式下
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/rpm-4.11.3-21.e17.x86_64.rpm --root=/mnt/sysimage 以root的身份將rpm包安裝在系統(tǒng)真實(shí)目錄/mnt/sysimage下
chmod /mnt/sysimage 切換進(jìn)入真實(shí)系統(tǒng)下
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/httpd* 測(cè)試rpm是否修復(fù)成功
13少欺、計(jì)算2+4+6+…+96+98+100之和(5分)
echo {2..100..2} | tr -s ' ' '+' | bc
14、取/etc/sysconfig/network-scripts/ifcfg-ens33基名别惦,用兩種方法實(shí)現(xiàn)(5分)
echo /etc/sysconfig/network-scripts/ifcfg-ens33 |egrep -o '[^/]+?$'
basename /etc/sysconfig/network-scripts/ifcfg-ens33
15狈茉、對(duì)/etc/目錄,分別執(zhí)行命令掸掸,實(shí)現(xiàn)以下功能(5分)
(1)按從大到小順序顯示文件列表
ll /etc/ | tr -s " " | cut -d' ' -f 5,9 | sort -n -r | cut -d ' ' -f 2
(2)只顯示隱藏文件
ls -aI "[^.]*" /etc
(3)只顯示目錄
ll -a /etc/ | egrep ^d
(4)按mtime時(shí)間顯示文件列表
ls -a -t /tmp/
(5)按atime時(shí)間顯示文件列表
ls -a -ut /tmp/
16氯庆、編寫/root/bin/excute.sh,實(shí)現(xiàn)與用戶交互扰付,判斷用戶給予的參數(shù)是否可讀堤撵,可寫,可執(zhí)行(5分)
#!/bin/bash
read -p "please input fimename " name || exit
[ -r $name ] && echo "file $name have read"
[ -w $name ] && echo "file $name have write"
[ -x $name ] && echo "file $name have excute"
17羽莺、編寫/root/bin/create.sh可以生成新的腳本包括作者实昨、聯(lián)系方式、版本盐固、時(shí)間和描述等荒给,并且可以直接對(duì)其進(jìn)行編輯丈挟,編輯完后自動(dòng)加上執(zhí)行權(quán)限(5分)
#!/bin/bash
[ $# -gt 1 ] &&{ echo "the args is error";exit;}
[ $# == 0 ] && read -s -p "please input script name: " name || name="$1"
echo "#!/bin/bash
# filename "$name"
# author:danran
# telephone:1709369XXXX
# versions:1.5
# time is `date +%F`
# describe:This is a script to create a template"
>"$name"
chmod +x "$name"
vim "$name"
18、寫一個(gè)腳本志电,讓它可以傳遞兩個(gè)參數(shù)后曙咽,實(shí)現(xiàn)對(duì)該參數(shù)的加、減挑辆、乘例朱、除運(yùn)算并輸出運(yùn)算后的值(5分)
#!/bin/bash
[ $# != 2 ] && { echo "usage:file.sh num1 num2" ; exit ; }
echo "$1+$2=$[ $1+$2 ]"
echo "$1*$2=$[ $1*$2 ]"
echo "$1-$2=$[ $1-$2 ]"
[ "$2" -eq 0 ] && echo "The divisor is 0 " ||echo "$1/$2=$[ $1/$2 ]"
19、編寫/root/bin/wcfile.sh統(tǒng)計(jì)/etc目錄中的目錄的個(gè)數(shù)鱼蝉,文件的個(gè)數(shù)洒嗤,并求出/etc/目錄中的目錄和文件個(gè)數(shù)的總和(5分)
#!/bin/bash
dir=`ls -al /etc/ | egrep \(^d\|^.d\) | wc -l`
file=`ls -al /etc/ | egrep \(^-\|^.-\) | wc -l`
let sum=$dir+$file
echo "the dir is $dir;the file is $file;the file and dir sum is $sum"
20魁亦、/編寫/root/bin/baketc.sh 查找/etc/目錄中超過(guò)1天未修改的文件渔隶,將其壓縮備份至/bakup目錄。若之前沒(méi)有備份過(guò)則備份之洁奈,若存在的備份文件超過(guò)了2分鐘則備份之派撕,否則退出。備份的格式為YYYY-MM-DD-hh-mm-ss.xz(Y表示年睬魂,M表示月,D表示日镀赌,h表示時(shí)氯哮,m表示分,s表示秒)(5分)
#!/bin/bash
ls *.xz > /dev/null || { find /etc -mtime +0 > /app/tar.txt && tar Jcf /backup/
`date "+%F-%H-%M-%S"`.xz -T /app/tar.txt ;exit; }
[ -z `find /backup/*.xz -mmin -2` ] && find /etc -mtime +0 > /app/tar.txt &&
tar Jcf /app/backup/`date "+%F-%H-%M-%S"`.xz -T /app/tar.txt || exit
參考答案
#!/bin/bash
DATE=`date +"%Y-%m-%d-%H-%M-%S"`
WCFILE=`ls /backup | wc -l`
[ -d /backup ] || mkdir /backup
[ $WCFILE -eq 0 ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz
FILE=$[`ls -lt /backup/* | cut -d" " -f10 | head -1 |tr -dc [:digit:]`+200]
echo "new file old time add two minute was: $FILE"
NOW=$[`date +"%Y%m%d%H%M%S"`]
echo "NOW system time is: $NOW"
[ $FILE -lt $NOW ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz
有趣的郵件
[test]
name=test
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0
enabled=1
[test2]
name=test2
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
yum -y install msmtp mutt
cat .muttrc
set sendmail="/usr/bin/msmtp"
set use_from=yes