- 第1章 练习题
- 1.1 每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)
- 1.3 描述下列路径的内容是做什么的。
- 1.4 请说出下列 grep 正则表达式的含义
- 1.5 排除文件中的空行和空格
- 1.6 把passwd.txt 第一列取出来
- 1.7 vi/vim命令、快捷键
- 1.8 授权 clsn 目录及其子目录 755 的权限。
- 1.9 把 clsn 目录及其子目录的属主改为 clsn,组改为 root。
- 1.10 描述下 umask 的作用.
- 1.11 每天打包备份 /etc/rc.local /etc/hosts /etc/services 到 /backup目录。
- 第2章 回顾课程
第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和下午 17: 00 上班(执行程序/server/script/clsn.sh代替学习)。
00 9,17 * * 0,6 /bin/sh /server/scripts/clsn.sh >/dev/null 2>&1
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,NF,2,3,3,4,5,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 授权 clsn 目录及其子目录 755 的权限。
chmod -R 755 clsn
1.9 把 clsn 目录及其子目录的属主改为 clsn,组改为 root。
chown clsn.lodboy clsn.txt
1.9.1 修改时可能发生的错误
[root@znix ~]# id clsn
uid=500(clsn) gid=501(incahome) groups=501(incahome)
[root@znix ~]# chown clsn.clsn clsn-new.txt
[root@ znix ~]# chown clsn.clsn num.txt
chown: invalid user: `clsn.clsn'
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.nmtui.com
ping: unknown host centos.nmtui.com
2.3.2 ping 外网ip
可以ping 通
[root@znix ~]# ping 123.206.66.12
PING 123.206.66.149 (123.206.66.12) 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