shell习题第14题:】的更多相关文章

[题目要求] 需求,根据web服务器的访问日志,把一些请求高的ip给拒绝掉,并且每隔半小时把不再发起请求或者请求量很小的ip给解封 假设: 1. 一分钟内请求量高于100次的ip视为不正常的请求 2. 访问日志路径为/data/logs/access_log 取线上的Nginx日志作为练习 [核心要点] 统计ip访问次数,排序 如何标记每隔半个小时 iptables计数器是一个重要的判断标准 函数(封ip,解封ip) [脚本] block_ip() { t1=`date -d "-1 min&q…
[题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for循环遍历所有单词 wc -L获取字符串长度 [脚本] #!/bin/bash c="Bash also interprets a number of multi-character options." n=`echo $c|awk -F '[ +-.]' '{print NF}'` ;i&…
[题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为data123,本地备份目录为/bak/mysql,远程服务器ip为192.168.1.100,远程提供了一个rsync同步服务 [核心要点] 备份数据库的命令 同步到远程服务器的命令 本地一周,可以用 date +%w做后缀,远程一个月可以用date +%d作为后缀 [脚本] #!/bin/bash…
[题目要求] 写一个支持选项的增加或删除用户的shell脚本 #!/bin/bash ]; then echo "Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 -- help" exit fi exist_user() { >/dev/null >/dev/null then echo $i not exist fi } in --add) ]; then echo "…
[题目要求] 有一台服务器作为web应用,有一个目录(/data/web/attachment)不定时会被用户上传新的文件,但是不知道什么时候会被上传.所以,需要我们每5分钟做一次检测是否有新文件生成.请写一个shell脚本去完成检测.检测完成后若是有新文件,还需要将新文件的列表输出到一个按年.月.日.时.分为名字的日志里 [核心要点] find -mmin -5 date +%Y%m%d%H%M [脚本] #!/bin/bash basedir=/data/web/attachment t=`…
[题目要求] 写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时候,发邮件提醒 [核心要点] df df -i date +%F [脚本] #!/bin/bash dir=/tmp/disk d=`date +%F` [ -d $dir ] || mkdir $dir df >> $dir/$d.log df -i >> $dir/$d.log df | sed '1d' | awk…
[题目要求] 写个shell,看看你的Linux系统中是否有自定义的用户(普通用户),如有有的话统计个数 [核心要点] CentOS6,uid>=500 CentOS7,uid>=1000 [脚本] #!/bin/bash v=`cat /etc/redhat-release | awk -F'release' '{print $2}' | cut -d'.' -f1 | awk -F' ' '{pr }'` user() { -eq ]; then echo "no users&q…
[题目要求] 请仔细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字 10 31 53 77 105 141... ... [核心要点] 计算两个数值之间的差值 [脚本] #!/bin/bash x= y= ` do echo $x x=$[$y+$y] z=$[**$i] y=$[$y+$z] done…
[题目要求] 用shell脚本实现如下需求 添加user_00 -- user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母及数字,注意要把每个用户的密码记录到一个日志文件里 提示: 1. 随机密码使用命令 mkpasswd 2. 在脚本中给用户设置密码, 可以使用echo, 然后管道passwd命令 [核心要点] seq实现数字递增 mkpasswd产生随机字符 [脚本] #!/bin/bash ` do useradd user_$i -s ` echo "us…
[题目要求] 写一个脚本实现如下功能:输入一个数字,然后运行对应的一个命令 显示命令如下: *cmd menu* 1--data  2--ls 3--who 4--pwd 输入1时,会运行data [核心要点] case判断 [脚本] #!/bin/bash echo "*cmd menu* 1-data 2-ls 3-who 4-pwd" read -p "please input a number:" n n1=`echo $n | sed 's/[0-9]//…