shell脚本习题

第一部分

使用for循环在/runtime目录下通过随机10个字符加固定字符串runtime批量创建10个html文件,结果类似qnvuxvicni_runtime.html

将以上文件名中的runtime全部改成wangqing(用for循环实现),并且html改成大写

批量创建10个系统帐号runtime01-runtime10并设置密码(密码为随机8位字符串)

写一个脚本,实现判断10.0.0.0/24网段中当前在线的IP有哪些

如何实现对MySQL数据库进行分库备份,请用脚本实现

如何实现对MySQL数据库进行分库加分表备份,请用脚本实现

打印I am runtime teacher welcome to runtime training class.中字母长度不大于6的单词

实现以脚本传参的方式比较2个整数大小,以屏幕输出的方式提醒用户比较结果

实现以read读入的方式比较2个整数大小,以屏幕输出的方式提醒用户比较结果

第二部分

写一个httpd的源码安装脚本

要求:

  • 让用户选择要安装的版本,2.2或2.4
  • 安装上指定的版本,不要做任何的配置

写一个httpd的配置脚本

要求:

  • 让用户选择三种虚拟主机中的一种
  • 配置上用户指定方式的虚拟主机
  • 必须使用函数

第三部分

如何查看当前系统中TCP各连接状态的数量?

如何查看nginx日志中每个客户端ip的访问次数,要求按从高到低排序?

通过至少2种方式生成一个32位的随机密码

统计apache的访问日志access.log中访问量最多的5个ip地址

写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出,任意其它键则通过vim打开这个指定的脚本

写一个下载文件的脚本,要求如下:

  • 创建一个函数,传递2个参数
  • 第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
  • 如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
  • 如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本

添加一块硬盘,通过脚本实现分区和格式化,要求分3个区,分区1大小为500M,分区2大小为4G,分区3大小为剩余所有空间,将第1个分区格式化成xfs文件系统,第2个分区格式化成ext4

打印选择菜单,一键安装Web服务:

[root@runtime scripts]# ./menu.sh
1.[install lamp]
2.[install lnmp]
3.[exit]

please type the num you want:

要求:

  • 当用户输入1时,输出“start installing lamp.”,然后执行/scripts/lamp.sh,脚本内容输出”lamp is installed”后退出脚本;
  • 当用户输入2时,输出“start installing lnmp.” 然后执行/scripts/lnmp.sh,脚本内容输出”lnmp is installed”后退出脚本;
  • 当输入3时,退出当前菜单及脚本;
  • 当输入任何其它字符,给出提示“Input error”后退出脚本 要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等