
shell脚本练习
ly_qiu
一切都有最好的安排
展开
-
shell脚本:数据库的备份
1.要求执行db_dump.sh westos (数据库密码)脚本执行后会备份数据库中的所有库到/mnt/mysqldump目录中备份文件名称为“库名称.sql”,当次文件存在时报错并询问动作输入 S 跳过备份;输入 B 时备份“库名称.sql”文件为库名称_backup.sql ;当输入0时,覆盖源文件2.实验环境搭建yum源搭建方法,此处显示我已经搭建好了dnf search mariadb查找dnf install mariadb-server.x86_64 -y安装sy原创 2020-07-17 20:38:04 · 910 阅读 · 0 评论 -
shell练习:使用脚本同步系统时间 + hello world
练习1:Shell脚本同步系统时间1.要求写一个脚本,30秒同步一次系统时间自行搭建时间同步服务器如果同步失败,就进行邮件报警,每次失败就报警如果同步成功,也进行邮件通知,但是成功100次才通知一次2.思路分析针对30秒倒计时我们可以使用sleep 30,并且每个30s同步一次时间,表示该脚本是个死循环时间同步服务(chrony)3.代码#!/bin/bashsuccessCount=0while truedo echo "Checking system原创 2020-07-15 20:58:08 · 980 阅读 · 0 评论 -
shell脚本完成-------有颜色的字符串输出
函数概念shell中允许将一组命令集合或语句形成一段可用代码,称为shell函数给这段代码七个名字称为函数名,后续可以直接调用该段代码的功能函数定义方法一 函数名() { 函数体(一堆命令的集合,来实现某个功能) }方法二 function 函数名() { 函数体(一堆命令的集合,来实现某个功能) echo hello echo world }函数练习:有颜色的字符串输出1.要求输出具有不同颜色的hello world2.代码及思路分析RED="\033[原创 2020-07-13 13:25:44 · 567 阅读 · 0 评论 -
shell脚本:结合函数,模拟一个多任务维护界面
结合函数,模拟一个多任务维护界面要求模拟一个多任务维护界面,当执行程序时先显示总菜单,然后进行选择后做相应维护监控操作############请选择############ h 显示命令的帮助 f 显示磁盘分区 d 显示磁盘挂载 m 显示内存使用 u 显示系统负载 q 退出程序#############################项目思路如果每次都重新写菜单对于我们而言就非常麻烦,所以可以选择使用函数显示磁盘分区 fdisk显示磁盘挂载df显示内存使用fre原创 2020-07-12 23:38:17 · 260 阅读 · 0 评论 -
用户建立脚本:自动创建多个用户并设置对应密码
用户建立脚本:自动创建用户并设置对应密码题目要求脚本的执行格式:users_create.sh userlist passlist建立userlist列表中的用户设定userlist列表中的密码为passlist列表中的密码项目思路脚本的执行格式:users_create.sh userlist passlist目标: 创建用户(一般情况只有root用户可以创建用户)看用户名文件和密码文件是否一一对应的1)是否输入参数2)输入的参数是否为2个3)判断用户文件和密码文件是否存在原创 2020-07-12 23:10:46 · 790 阅读 · 0 评论 -
使用shell脚本自动搭建 nfs 服务
使用shell脚本自动搭建 nfs 服务项目思路测试网络是否畅通ping -c1关闭Selinux和防火墙(或者设置Selinux和防火墙策略)确认软件是否安装(rpcbind,Redhat8自动安装)创建和发布共享目录(可设置共享目录+共享网段+共享权限)启动服务并设置开机自启动搭建完成后提示:共享服务搭建完成,欢迎下次使用代码根据上述项目思路,设计了5部分echo '1.check network is ok?'ping -c1 172.25.254.22 &>原创 2020-07-12 22:41:58 · 828 阅读 · 1 评论 -
shell脚本:自动连接目标主机(使用expect)
使用了expect自动应答1.要求可以自动连接目标主机当目标主机网络不通时报错2.代码3.结果在172.25.254.17中进行查看发现与我们所得的结果一直,说明此脚本可用原创 2020-07-15 21:44:52 · 402 阅读 · 0 评论 -
shell脚本:检测10台与您当前主机直连主机是否网络通畅
1.要求用此脚本check_host.sh检测10台与您当前主机直连主机是否网络通畅如果网络通常请显示主机的ip列表2.实现【1】命令直接实现脚本:验证:在检验的过程中,我的真机IP是172.25.254.17,可看出结果正确【2】使用退出值$?脚本:验证:此时只显示能ping成功的ip...原创 2020-07-15 21:40:40 · 400 阅读 · 0 评论 -
shell脚本:实时显示磁盘、内存、负载的使用情况
1.要求system_watch.sh disk memory upload (每秒显示)disk 监控磁盘使用情况 (df查看)memory 监控内存使用情况 (free)upload 监控启动负载 (uptime)2.代码3.结果sh system_watch.sh disksh system_watch.sh memorysh system_watch.sh uptime...原创 2020-07-15 21:38:41 · 679 阅读 · 0 评论 -
shell脚本:检测文件类型
1.要求创建check_file.sh要求提示 please input filename: file当文件不存在时,显示:file is not exist-当是个文件时,显示 file is file当是目录时,显示:file is direcory此脚本会一直询问直到用户输入exit为止2.实现【1】使用while循环【2】使用函数...原创 2020-07-15 21:36:32 · 680 阅读 · 0 评论 -
shell练习:使用脚本完成清空日志
1.要求clear_log.sh 执行次脚本后可以清空日志2.脚本3.运行结果4.命令讲解awk '/./&&!/^#/&&/^\$!/&&$2~/^\/|^\-/{print $2}' /etc/rsyslog.conf | sed 's/-//g'命令作用/./要求所在行有 .!/^#/不以#开头!/^$/不以$开头$2~/^ \ /第二列必须 / 开头sed ‘s/-//g’去掉原创 2020-07-15 21:31:09 · 340 阅读 · 0 评论 -
shell脚本: host_messages.sh显示当前主机的名称及ip登陆当前主机的用户
1.要求host_messages.sh 显示当前主机的名称,ip登陆当前主机的用户hostname: xxxxxipaddress: xxxx.xxxx.xxx.xxxusername: root2.脚本3.运行结果原创 2020-07-15 21:28:29 · 629 阅读 · 0 评论 -
shell练习:显示当前的 ip 与 网卡名称
1.要求显示当前的 ip 与 网卡名称2.代码及演示[root@xixi ~]# ifconfig | awk '/inet/{print $2}' 172.25.254.33fe80::5054:ff:fe5d:dd27127.0.0.1::1192.168.122.1[root@xixi ~]# ifconfig | awk '/inet\>/{print $2}'172.25.254.33 \>表示不需要后面的信息127.0.0.11原创 2020-07-15 21:26:05 · 981 阅读 · 0 评论 -
shell脚本:脚本Apache_port.sh后接入数字,http的端口就改为此数字
1.要求此脚本后接入数字,http的端口就改为此数字。(假设selinux为关闭状态)2.代码3.结果4.思考过程 - 判断是否安装了apache,没有则进行安装 - 判断脚本后是否跟了数字,没有就进行报错 - 当脚本后不为空,判断端口是否正在被使用 - 替换配置文件中的端口用脚本安装apache,&>/dev/null 表示不显示信息判断数字是否为空[ -z "$1"] && { echo "Error:not port numbe原创 2020-07-15 21:17:30 · 351 阅读 · 0 评论 -
shell脚本:显示系统中能被su命令切换的用户名称
要求请显示系统中能被su命令切换的用户名称第一次尝试:[root@xixi ~]# ls /homeliyanqiu westos[root@xixi ~]#此命令的缺点在于:不能出现root用户第二次尝试(脚本)vim show_login.sh #!/bin/bash grep bash$ /etc/passwd此方法的缺点:有些用户可能是以sh结尾的,这样就会遗漏最后尝试(脚本)vim show_login.sh#!/bin/bashgrep -E "bas原创 2020-07-15 21:03:41 · 421 阅读 · 0 评论