第1章 練習題 1.1 每天晚上 12 點,打包站點目錄/var/www/html 備份到/data 目錄下(最好每次備份按時間生成不同的備份包) 1.1.1 測試命令 [root@znix ~]# cd / && tar zcf /data/www_`date +%F`.tar.gz var/ww ...
第1章 練習題
1.1 每天晚上 12 點,打包站點目錄/var/www/html 備份到/data 目錄下(最好每次備份按時間生成不同的備份包)
1.1.1 測試命令
[root@znix ~]# cd / && tar zcf /data/www_`date +%F`.tar.gz var/www/html
1.1.2 寫入腳本中
[root@znix /]# cat /server/scripts/www.sh
cd / && tar zcf /data/www_`date +%F`.tar.gz var/www/html
1.1.3 測試腳本
[root@znix ~]# sh /server/scripts/www.sh
1.1.4 寫入定時任務
[root@znix /]# crontab -l |tail -2
#### backup /var/www/html dir
00 00 * * * /bin/sh /server/scripts/www.sh >/dev/null 2>&1
1.1.5 檢查執行結果
[root@znix ~]# ll /data/
total 16
-rw-r--r-- 1 root root 154 Sep 11 09:44 www_2017-09-11.tar.gz
1.2 每周 六、日 上午 9:00和下午 14: 00 來老男孩這裡學習(執行程式/server/script/oldboy.sh代替學習)。
00 9,14 * * 0,6 /bin/sh /server/scripts/oldboy.sh >/dev/null 2>&1
0表示周日
6表示周六
1.3 描述下列路徑的內容是做什麼的。
/etc/sysctl.conf 系統內核的配置文件
/etc/rc.local 開機自啟動
/etc/hosts ip與功能變數名稱的對應關係 ,解析主機名
/etc/fstab 開機自動掛載
/var/log/secure 用戶登陸信息,主要查看其中的Failed
1.4 請說出下列 grep 正則表達式的含義
^ 以...開頭的行
$ 以...結尾的行
.(點號) 任意一個字元
\ 在轉義字元 \n \t
* 前一個字元練習出現0次或1次以上
{n,m} 前一個字元連續出現,至少n次,最多m
[^t] 取不包含t的
^[^t] 以不是t的開頭
1.5 排除文件中的空行和空格
1.5.1 文件的內容
[root@znix ~]# cat -A mun.txt
znix1$
znix2$
znix3$
$
znix4$
$
znix5$
$
znix6$
1.5.2 egrep方法
找出空行 -v參數排除
[root@znix ~]# egrep -n "^ *$" mun.txt
4:
6:
8:
10:
14:
[root@znix ~]# egrep -n "^$|^ +$" mun.txt
4:
6:
8:
10:
14:
1.5.3 awk方法
[root@znix ~]# awk '!/^[ ]*$/' mun.txt
znix1
znix2
znix3
znix4
znix5
znix6
1.6 把passwd.txt 第一列取出來
1.6.1 文件內容
[root@znix ~]# cat passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
1.6.2 排除思想
[root@znix ~]# egrep "^[^:]+" passwd.txt -o
root
bin
……
1.6.3 sed方法
[root@znix ~]# sed -r 's#(^.*)(:x.*:)(.*)#\3\2\1#g' passwd.txt
/bin/bash:x:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
……
排除不是以 :開頭的行
[root@znix ~]# sed -r 's#(^[^:]+)(.*:)(/.*$)#\3\2\1#' passwd.txt
/bin/bash:x:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
……
1.6.4 awk方法
awk中的變數:
-vOFS=":"
OFS 的內容就是 , 的內容
awk在顯示每一列內容的時候,每一列之間的分隔符
-v 修改和創建awk可以使用的變數
[root@znix ~]# awk -F: -vOFS=":" '{print $NF,$2,$3,$4,$5,$6,$1}' passwd.txt
/bin/bash:x:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
……
1.7 vi/vim命令、快捷鍵
含義 | 命令 |
退出保存 | :wq |
退出並強制保存,!為強制的意思 | :wq! |
強制退出,不保存 | :q! |
另存為 | :q /tmp/**** |
游標移動到文件的最後一行 | G |
游標移動到文件的第一行 | gg |
游標移動到文件的100行 | 100gg 100G :100 |
從游標所在位置將游標移動到當前行的開頭 | 0 ^ |
從游標所在位置將游標移動到當前行的結尾 | $ |
刪除當前行的內容 | dd |
刪除當前行到文件的最後一行的內容 | dG |
刪除當前行到文件的第一行的內容 | dgg |
粘貼 | p |
粘貼10次 | 10p |
複製 | yy |
取消上一次的動作 | u |
刪除一行 | dd |
/ 搜索內容 | 繼續向下搜索 n 繼續向上搜索 N |
向上搜索 | ? |
取消對找到的內容的高亮顯示 | :noh |
1.7.1 編輯services定位到第100行把這一行複製到文件的最後一行粘貼10次。
100gg
yy
G
10p
1.8 授權 oldboy 目錄及其子目錄 755 的許可權。
chmod -R 755 oldboy
1.9 把 oldboy 目錄及其子目錄的屬主改為 oldboy,組改為 root。
chown oldboy.lodboy oldboy.txt
1.9.1 修改時可能發生的錯誤
[root@znix ~]# id oldboy
uid=500(oldboy) gid=501(incahome) groups=501(incahome)
[root@znix ~]# chown oldboy.oldboy oldboy-new.txt
[root@ znix ~]# chown oldboy.oldboy num.txt
chown: invalid user: `oldboy.oldboy'
檢查oldboy用戶是否存在,檢查oldbo這個用戶組是否存在
1.10 描述下 umask 的作用.
umask管理著linux預設的許可權
實例1-1 當umask為021時
file 許可權為644
666-021+001=644
dir 許可權為 756
777-021=756
1.11 每天打包備份 /etc/rc.local /etc/hosts /etc/services 到 /backup目錄。
1.11.1 測試命令
root@znix ~]# cd / && tar zcf /backup/file`date +%F`.tar.gz etc/rc.local etc/hosts etc/services
oot@znix /]# ll /backup/file2017-09-11.tar.gz
-rw-r--r-- 1 root root 127455 Sep 11 15:41 /backup/file2017-09-11.tar.gz
1.11.2 寫入腳本
[root@znix /]# cat /server/scripts/file.sh
cd / && tar zcf /backup/file`date +%F`.tar.gz etc/rc.local etc/hosts etc/services
1.11.3 測試腳本
[root@znix /]# sh /server/scripts/file.sh
[root@znix /]# ll /backup/file2017-09-11.tar.gz
-rw-r--r-- 1 root root 127455 Sep 11 15:44 /backup/file2017-09-11.t
[root@znix /]# cat /server/scripts/file.sh
1.11.4 寫入定時任務
### beifen zhongyaowenjan
00 00 * * * /bin/sh /server/scripts/file.sh >/dev/null 2>&1
1.11.5 測試定時任務
[root@znix ~]# date -s '23:59:29'
Mon Sep 11 23:59:29 CST 2017
[root@znix ~]# ll /backup/file2017-09-1*
-rw-r--r-- 1 root root 127455 Sep 11 15:44 /backup/file2017-09-11.tar.gz
-rw-r--r-- 1 root root 127455 Sep 12 2017 /backup/file2017-09-12.tar.gz
第2章 回顧課程
2.1 定時任務
每隔 2 個小時將/etc/services 文件打包備份到/tmp 下(最好每次備份成不同的備份包)
2.1.1 測試命令
[root@znix ~]# cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz etc/services
2.1.2 放入腳本中
[root@znix ~]# cat /server/scripts/ser.sh
cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz etc/services
2.1.3 測試腳本
[root@znix ~]# sh /server/scripts/ser.sh
2.1.4 寫入定時任務
[root@znix ~]# crontab -l |tail -2
#backup /etc/services
00 */2 * * * /bin/sh /server/scripts/bak-ser.sh >/dev/null 2>&1
2.1.5 檢查定時任務是否成功
1)是否打包成功,看看文件裡面是否有追加的信息
2)查看定時任務日誌 /var/log/cron
2.2 無法連接linux
2.2.1 道路是否通暢
ping ip地址
實例2-1 無法ping通的解決辦法:
伺服器的ip地址是否正確
伺服器網卡是否啟動,即ONBOOT是否為yes
系統網卡的配置
實例2-2 VMware相關的:
vmware-5個服務是否啟動
vmware配置-網卡是否連接
查看你vmware網卡的vmnet8 是否已經啟動
2.2.2 是否有人劫財劫色
查看 iptables selinux是否關閉
2.2.3 是否有人提供服務
實例2-3 看22埠是否開啟
方法一: telnet 10.0.0.200 22
方法二: ss -lntup |grep 22
實例2-4 進程是否在運行
ps -ef |grep sshd
2.3 linux無法上網怎麼辦
2.3.1 ping 功能變數名稱
功能變數名稱無法ping 通
[root@znix ~]# ping centos.houzhaoshun.cn
ping: unknown host centos.houzhaoshun.cn
2.3.2 ping 外網ip
可以ping 通
[root@znix ~]# ping 123.206.66.149
PING 123.206.66.149 (123.206.66.149) 56(84) bytes of data.
64 bytes from 123.206.66.149: icmp_seq=1 ttl=128 time=63.1 ms
64 bytes from 123.206.66.149: icmp_seq=2 ttl=128 time=60.5 ms
2.3.3 檢查dns配置文件
[root@znix ~]# cat /etc/resolv.conf
2.3.4 修改配置文件
修改完成重啟網卡,生效
[root@znix ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Determining if ip address 10.0.0.201 is already in use for device eth0...
[ OK ]
2.4 檢查一個軟體是否按照 rpm 相關
2.4.1 查詢某個軟體包是否安裝
[root@znix ~]# rpm -qa tree
tree-1.5.3-3.el6.x86_64
2.4.2 查詢軟體包裡面的內容
[root@znix ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz
2.4.3 查詢某個命令屬於哪個軟體包
查詢的時候要使用絕對路徑
[root@znix ~]# rpm -qf `which crond`
cronie-1.4.4-16.el6_8.2.x86_64