-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathshell-question
86 lines (73 loc) · 4.86 KB
/
shell-question
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
01.
【题目要求】
请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,
例如生成的文件名为2019-08-08.log,
并且把磁盘的使用情况写到/var/log/disk/2019-08-08.log中,
不用考虑cron,仅仅写脚本即可
02.
有日志1.log,部分内容如下
```
112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode.php?update=0.5593110133088248″ 200″http://formula-x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)”
61.147.76.51 – [25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com “/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″ 301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”
```
统计出每个IP访问量有多少
03.
写一个脚本计算一下linux系统所有进程占用常驻内存大小的和。
04.
设计一个脚本,监控远程的一台机器(假设ip为10.0.0.20)的存活状态,当发现宕机时发一封邮件给你自己
05.
找到/abc目录下所有后缀名为.txt的文件
1. 批量修改.txt为.txt.bak
2. 把所有.bak文件打包压缩为abc.tar.gz
3. 批量还原文件的名字,即把增加的.bak再删除
06.
写一个脚本,判断本机的80端口(假如服务为httpd)是否开启着,如果开启着什么都不做,如果发现端口不存在,那么重启一下httpd服务,
并发邮件通知你自己。脚本写好后,可以每一分钟执行一次,也可以写一个死循环的脚本,30s检测一次。
07.
设计一个shell脚本来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月。
假定,我们知道mysql root账号的密码,要备份的库为wordpress,本地备份目录为/backup/mysql, 远程服务器ip为10.0.0.10,
远程提供了一个rsync服务,备份的地址是 10.0.0.10::backup . 写完脚本后,需要加入到cron中,每天凌晨3点执行。
0 3 * * bash /server/scripts/07.sh &>/dev/null
08.
服务器上跑的是LNMP环境,近期总是有502现象。502为网站访问的状态码,200正常,502错误是nginx最为普遍的错误状态码。
由于502只是暂时的,并且只要一重启php-fpm服务则502消失,但不重启的话,则会一直持续很长时间。
所以有必要写一个监控脚本,监控访问日志的状态码,一旦发生502,则自动重启一下php-fpm。
我们设定:
1)access_log /data/log/access.log
2)脚本死循环,每10s检测一次(假设每10s钟的日志条数为300左右)
3)重启php-fpm的方法是 /etc/init.d/php-fpm restart
09.
把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉。
10.
用shell打印下面这句话中字母数小于6的单词。
Bash also interprets a number of multi-character options.
11.
#### 题目要求
写一个脚本实现如下功能:
输入一个数字,然后运行对应的一个命令。
显示命令如下:
*cmd meau** 1 - date 2 - ls 3 - who 4 - pwd
当输入1时,会运行date, 输入2时运行ls, 以此类推。
12.
#### 题目要求
用shell脚本实现如下需求:
添加user_00 – user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里。
提示:
1. 随机密码使用命令 mkpasswd
2. 在脚本中给用户设置密码,可以使用echo 然后管道passwd命令
13.
在服务器上,写一个监控脚本,要求如下:
1. 每隔10s去检测一次服务器上的httpd进程数,如果大于等于500的时候,就需要自动重启一下apache服务,并检测启动是否成功?
2. 若没有正常启动还需再一次启动,最大不成功数超过5次则需要立即发邮件通知管理员,并且以后不需要再检测!
3. 如果启动成功后,1分钟后再次检测httpd进程数,若正常则重复之前操作(每隔10s检测一次),若还是大于等于500,那放弃重启并需要发邮件给管理员,然后自动退出该脚本。假设其中发邮件脚本为之前使用的mail.py
14.
需求: 根据web服务器上的访问日志,把一些请求量非常高的ip给拒绝掉!并且每隔半小时把不再发起请求或者请求量很小的ip给解封。
假设:
1. 一分钟内请求量高于100次的IP视为不正常请求。
2. 访问日志路径为/data/logs/access_log。
用第2例中的1.log作为演示日志
15.
请仔细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字。
10 31 53 77 105 141 …….
16.
写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个?