做医疗的网站建设做试管网站
2026/6/10 16:14:52 网站建设 项目流程
做医疗的网站建设,做试管网站,北京建设银行官网招聘网站,定制做网站技术1、检测服务器是否正常假设#xff0c;当前MySQL服务的root密码为123456#xff0c;写脚本检测MySQL服务是否正常#xff08;比如#xff0c;可以正常进入mysql执行show processlist#xff09;#xff0c;并检测一下当前的MySQL服务是主还是从#xff0c;如果是从…1、检测服务器是否正常假设当前MySQL服务的root密码为123456写脚本检测MySQL服务是否正常比如可以正常进入mysql执行show processlist并检测一下当前的MySQL服务是主还是从如果是从请判断它的主从服务是否异常。如果是主则不需要做什么。#!/bin/bash mysql/usr/local/mysql/bin/mysql -uroot -p123456 if ! $mysql -e show processlist /dev/null 2/dev/null then echo MySQL service is down. exit else $mysql -e show slave status\G 2/dev/null /tmp/slave.stat nwc -l /tmp/slave.stat|awk {print $1} if [ $n -eq 0 ] then echo This is master. else echo This is slave. egrep Slave_IO_Running:|Slave_SQL_Running:/tmp/slave.stat|awk -F : {print $2} /tmp/SQL.tmp if grep -qw No /tmp/SQL.tmp then echo The slave is down. fi fi fi2、写一个支持选项的增加或删除用户的shell脚本具体要求如下1. 只支持三个选项:--del,--add,--help输入其他选项报错。2. 使用--add时需要验证用户名是否存在存在则反馈存在且不添加。 不存在则创建该用户需要设置与该用户名相同的密码。3. 使用--del时需要验证用户名是否存在存在则删除用户及其家目录。不存在则反馈该用户不存在。4. --help选项反馈出使用方法。5. 能用echo $?检测脚本执行情况成功删除或添加用户为0不成功为非0正整数。6. 能以英文逗号分割一次性添加或者删除多个用户。例如 adddel.sh --add user1,user2,user3#!/bin/baash if [ $# -eq 0 ] || [ $# -gt 2 ] then echo Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 --help exit fi ex_user() { if ! id $1 2/dev/null /dev/null then useradd $1 echo $1 add successful. else echo $1 exist. fi } notex_user() { if id $1 2/dev/null /dev/null then userdel $1 echo $1 delete successful. else echo $1 not exist. fi } case $1 in --add) if [ $# -eq 1 ] then echo Wrong, use bash $0 --add user or bash $0 --add user1,user2,user3... exit else necho $2| awk -F , {print NF} if [ $n -gt 1 ] then for i in seq 1 $n do usernameecho $2 |awk -v j$i -F , {print $j} ex_user $username done else ex_user $2 fi fi ;; --del) if [ $# -eq 1 ] then echo Wrong, use bash $0 --del user or bash $0 --del user1,user2,user3... exit else necho $2| awk -F , {print NF} if [ $n -gt 1 ] then for i in seq 1 $n do usernameecho $2 |awk -v j$i -F , {print $j} notex_user $username done else notex_user $2 fi fi ;; --help) if [ $# -ne 1 ] then echo Wrong, use bash $0 --help exit else echo Use bash $0 --add username or bash $0 --add user1,user2,user3... add user. echo bash $0 --del username -r bash $0 --del user1,user2,user3... delete user. echo bash $0 --help print this info. fi ;; *) echo Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 --help ;; esac3、写一个脚本 计算100以内所有能被3整除的正整数的和#!/bin/bash sum0 for i in seq 1 100 do j$[$i%3] if [ $j -eq 0 ] then sum$[$sum$i] fi done echo $sum4、使用传参的方法写个脚本实现加减乘除的功能。例如 sh a.sh 1 2这样会分别计算加、减、乘、除的结果。要求1. 脚本需判断提供的两个数字必须为整数2. 当做减法或者除法时需要判断哪个数字大减法时需要用大的数字减小的数字除法时需要用大的数字除以小的数字并且结果需要保留两个小数点#!/bin/bash is_nu() { necho $1 |sed s/[0-9]//g if [ -n $n ] then echo 给出的参数必须是正整数 exit fi } if [ $# -ne 2 ] then echo 必须要输入两个参数 exit else is_nu $1 is_nu $2 fi big() { if [ $1 -gt $2 ] then echo $1 else echo $2 fi } small() { if [ $1 -lt $2 ] then echo $1 else echo $2 fi } add() { sum$[$1$2] echo $1$2$sum } jian() { bbig $1 $2 ssmall $1 $2 cha$[$b-$s] echo $b-$s$cha } cheng() { ji$[$1*$2] echo $1x$2$ji } chu() { bbig $1 $2 ssmall $1 $2 vecho scale2;$b/$s|bc echo $b/$s$v } add $1 $2 jian $1 $2 cheng $1 $2 chu $1 $25、写一个脚本执行后打印一行提示“Please input a number:要求用户输入数值然后打印出该数值然后再次要求用户输入数值。直到用户输入end停止。#!/bin/bash while : do read -p Please input a number: n if [ -z $n ] then echo 请输入一个纯数字. continue fi if echo $n |grep -qi end then exit fi n1echo $n|sed s/[0-9]//g if [ -n $n1 ] then echo 请输入一个纯数字. continue else echo 你输入的数字是: $n continue fi done6、提示用户输入网卡的名字然后我们用脚本输出网卡的ip需要考虑下面问题1. 输入的字符不符合网卡名字规范怎么应对。2. 名字符合规范但是根本就没有这个网卡又怎么应对。#!/bin/bash ip add |awk -F : $1 ~ ^[1-9] {print $2} /tmp/eth.list while : do ethscat /tmp/eth.list |xargs read -p Please input a if name(The eths is echo -e \033[31m$eths\033[0m): eth if [ -z $eth ] then echo Please input a if name. continue fi if ! grep -qw $eth /tmp/eth.list then echo The if name is error. continue else break fi done if_ip() { ip add show dev $1 |grep inet |awk {print $2}|awk -F / {print $1} /tmp/$1.txt nwc -l /tmp/$1.txt|awk {print $1} if [ $n -eq 0 ] then echo There is no ip address on the eth. else echo The ip addreess is: for ip in cat /tmp/$1.txt do echo -e \033[33m$ip\033[0m done fi } if_ip $eth7、写一个脚本实现如下功能1. 脚本可以带参数也可以不带2. 参数可以有多个每个参数必须是一个目录3. 脚本检查参数个数若等于0则列出当前目录本身否则显示每个参数包含的子目录。#!/bin/bash if [ $# -eq 0 ] then echo 当前目录下的文件是: ls . else for d in $ do if [ -d $d ] then echo 目录$d下有这些子目录: find $d -type d else echo 并没有该目录$d fi done fi8、定义一个shell函数能接受两个参数满足以下要求1. 第一个参数为URL即可下载的文件第二个参数为目录即下载后保存的位置2. 如果用户给的目录不存在则提示用户是否创建如果创建就继续执行否则函数返回一个51的错误值给调用脚本3. 如果给的目录存在则下载文件下载命令执行结束后测试文件下载成功与否如果成功则返回0给调用脚本否则返回52给调用脚本#!/bin/bash if [ $# -ne 2 ] then echo 你必须要输入两个参数第一个参数是网址第二个参数是目录. exit 1 fi if [ ! -d $2 ] then while : do echo 你输入的第二个参数并不是一个存在的目录。是否要创建该目录呢?(y|n): c case $c in y|Y) mkdir -p $2 ;; n|N) exit 51 ;; *) echo 请输入y或者n. continue ;; esac done else cd $2 wget $1 if [ $? -eq 0 ] then exit 0 else echo 下载失败. exit 52 fi fi9、写一个猜数字脚本当用户输入的数字和预设数字随机生成一个0-100的数字一样时直接退出否则让用户一直输入并且提示用户的数字比预设数字大或者小。#!/bin/bash n$[$RANDOM%101] while : do read -p 请输入一个0-100的数字 n1 if [ -z $n1 ] then echo 必须要输入一个数字。 continue fi n2echo $n1 |sed s/[0-9]//g if [ -n $n2 ] then echo 你输入的数字并不是正整数. continue else if [ $n -gt $n1 ] then echo 你输入的数字小了请重试。 continue elif [ $n -lt $n1 ] then echo 你输入的数字大了请重试。 continue else echo 恭喜你猜对了 break fi fi done10、写一个shell脚本能实现如下需求1. 执行脚本后提示输入名字(英文的可以是大小写字母、数字不能有其他特殊符号)然后输出一个随机的0-99之间的数字脚本并不会退出继续提示让输入名字2. 如果输入相同的名字输出的数字还是第一次输入该名字时输出的结果3. 前面已经输出过的数字下次不能再出现4. 当输入q或者Q时脚本会退出。#!/bin/bash f/tmp/user_number.txt j_n() { while : do n$[RANDOM%100] if awk {print $2} $f|grep -qw $n then continue else break fi done } while : do read -p Please input a username: u if [ -z $u ] then echo 请输入用户名. continue fi if [ $u q ] || [ $u Q ] then exit fi u1echo $u|sed s/[a-zA-Z0-9]//g if [ -n $u1 ] then echo 你输入的用户名不符合规范正确的用户名应该是大小写字母和数字的组合 continue else if [ -f $f ] then u_nawk -v uu$u $1uu {print $2} $f if [ -n $u_n ] then echo 用户$u对应的数字是$u_n else j_n echo 用户$u对应的数字是$n echo $u $n $f fi else j_n echo 用户$u对应的数字是$n echo $u $n $f fi fi done11、用shell实现把一个文本文档中只有一个数字的行给打印出来。#!/bin/bash while read line do necho $line |sed s/[^0-9]//g|wc -L if [ $n -eq 1 ] then echo $line fi done 1.txt12、系统logrotate工具可以完成日志切割、归档。写一个shell脚本实现类似的归档功能。举例 假如服务的输出日志是1.log要求每天归档一个1.log第二天就变成1.log.1第三天1.log.2, 第四天 1.log.3 一直到1.log.5。#!/bin/bash cd /data/logs log1.log mv_log() { [ -f $1 ] mv $1 $2 } [ -f 1.log.5 ] rm -f 1.log.5 for i in seq 4 -1 1 do j$[$i1] mv_log $log.$i $log.$j done mv 1.log 1.log.113、写一个shell脚本把192.168.0.0/24网段在线的ip列出来。#!/bin/bash for i in seq 1 254 do if ping -c 2 -W 2 192.168.0.$i /dev/null 2/dev/null then echo 192.168.0.$i 是通的. else echo 192.168.0.$i 不通. fi done14、写一个shell脚本检查指定的shell脚本是否有语法错误若有错误首先显示错误信息然后提示用户输入q或者Q退出脚本输入其他内容则直接用vim打开该shell脚本。#!/bin/bash sh -n $1 2/tmp/sh.err if [ $? -ne 0 ] then cat /tmp/sh.err read -p 请输入q/Q退出脚本。 c if [ -z $c] then vim $1 exit 0 fi if [ $c q ] || [ $c Q ] then exit 0 else vim $1 exit 0 fi else echo 脚本$1没有语法错误. fi15、输入一串随机数字然后按千分位输出。比如输入数字串为“123456789”输出为123,456,789。#!/bin/bash necho $1|wc -L for d in echo $1|sed s/./ /g do n2$[$n%3] if [ $n2 -eq 0 ] then echo -n ,$d else echo -n $d fi n$[$n-1] done |sed s/^,// echo16、编写一个问候程序它执行时能根据系统当前的时间向用户输出问候信息。假设从半夜到中午为早晨中午到下午六点为下午下午六点到半夜为晚上。#!/bin/bash ddate %H if [ $d -ge 0 -a $d -lt 7 ] then tag1 elif [ $d -ge 7 -a $d -lt 12 ] then tag2 elif [ $d -ge 12 -a $d -lt 18 ] then tag3 else tag4 fi case $tag in 1) echo 早晨好 ;; 2) echo 上午好 ;; 3) echo 下午好 ;; 4) echo 晚上好 ;; *) echo 脚本出错啦 ;; esac17、写一个shell脚本实现简单的弹出式菜单功能用户能根据显示的菜单项从键盘选择执行对应的命令。#!/bin/bash PS3Please input your choice(1-4): select i in w ls pwd quit do case $i in w) w ;; ls) ls ;; pwd) pwd ;; quit) exit ;; *) echo Please input 1-3. ;; esac done #### 参考答案2 #!/bin/bash echo -e 1) w\n2) ls\n3) pwd\n4) quit while : do read -p Please input your choice(1-4): c case $c in 1) w ;; 2) ls ;; 3) pwd ;; 4) exit ;; *) echo Please input 1-4. ;; esac done18、写一个shell脚本执行中每隔5分钟检查指定的用户是否登录系统用户名从命令行输入如果指定的用户已经登录则显示相关信息。#!/bin/bash while : do if w|sed 1d|awk {print $1}|grep -qw $1 then echo 用户$1 已经登录系统. exit fi sleep 300 done19、先普及一个小常识我们用ps aux可以查看到进程的PID而每个PID都会在/proc内产生。如果查看到的pid在proc内是没有的则进程被人修改了这就代表系统很有可能已经被入侵过了。请用上面知识编写一个shell定期检查下自己的系统是否被人入侵过。#!/bin/bash pp$$ ps -elf |sed 1d /tmp/pid.txt for pid in awk -v ppn$pp $5!ppn {print $4} /tmp/pid.txt do if ! [ -d /proc/$pid ] then echo 系统中并没有pid为$pid的目录需要检查。 fi done20、想办法把文本里面每三行内容合并到一行例如1.txt内容1234567处理后应该是1 2 34 5 67#!/bin/bash n1 cat $1 |while read line do n1$[$n%3] if [ $n1 -eq 0 ] then echo $line else echo -n $line fi n$[$n1] done21、写一个getinterface.sh 脚本可以接受选项[iI]完成下面任务1使用格式getinterface.sh [-i interface | -I ip]2当用户使用-i选项时显示指定网卡的IP地址当用户使用-I选项时显示其指定ip所属的网卡。例sh getinterface.sh -i eth0 或者sh getinterface.sh -I 192.168.0.13当用户使用除[-i | -I]选项时显示[-i interface | -I ip]此信息。4当用户指定信息不符合时显示错误。比如指定的eth0没有而是eth1时#!/bin/bash ip add |awk -F : $1 ~ ^[1-9] {print $2} /tmp/ifs.txt get_ip() { ip add show dev $1 |grep inet |awk {print $2} |awk -F / {print $1} } for eth in cat /tmp/ifs.txt do myipget_ip $eth if [ -z $myip ] then echo $eth else echo $eth $myip fi done /tmp/if_ip.txt if [ $# -ne 2 ] then echo 请输入正确的格式: bash $0 -i 网卡 或者 bash $0 -I ip exit fi if [ $1 -i ] then if awk {print $1} /tmp/if_ip.txt |grep -qw $2 then eth$2 ip1awk -v aeth$eth $1aeth /tmp/if_ip.txt|sed s/$eth // echo 网卡$2的ip是 $ip1 else echo 你指定的网卡不对系统中的网卡有cat /tmp/ifs.txt|xargs exit fi elif [ $1 -I ] then if grep -qw $2 /tmp/if_ip.txt then ethgrep -w $2 /tmp/if_ip.txt|awk {print $1} echo IP $2对应的网卡是$eth else echo 你指定的ip不对系统中的IP有:ip add |grep inet |awk {print $2}|awk -F / {print $1}|xargs exit fi else echo 请输入正确的格式: bash $0 -i 网卡 或者 bash $0 -I ip fi22、写一个脚本产生随机3位的数字并且可以根据用户的输入参数来判断输出几组。 比如脚本名字为 number3.sh。执行方法1bash number3.sh 会产生一组3位数字。2bash number3.sh 10 会产生10组3位数字。#!/bin/bash get_number() { for i in seq 0 2 do a[$i]$[$RANDOM%10] done echo ${a[]}|sed s/ //g } if [ $# -eq 0 ] then get_number elif [ $# -eq 1 ] then necho $1|sed s/[0-9]//g if [ -n $n ] then echo 给定的参数必须是一个数字 exit fi for i in seq 1 $1 do get_number done |xargs else echo 格式不对正确的是格式是sh $0 [n]这里的n是一个数字。 fi23、写一个shell先判断是否安装httpd和mysql没有安装进行安装安装了检查是否启动服务若没有启动则需要启动服务。#!/bin/bash if_install() { rpm -q $1 /dev/null 2/dev/null if [ $? -eq 0 ] then echo $1已经安装 return 0 else echo $1没有安装 return 1 fi } if_install httpd if [ $? -eq 0 ] then if ! pgrep httpd /dev/null then service httpd start fi else yum install -y httpd fi if_install mysql-server if [ $? -eq 0 ] then if ! pgrep mysqld /dev/null then service mysqld start fi else yum install -y mysql-server fi24、用shell脚本判断输入的日期是否合法。比如20170110就是合法日期20171332就不合法。#!/bin/bash if [ $# -ne 1 ] || [ ${#1} -ne 8 ] then echo 请输入正确的格式sh $0 yyyymmdd exit 1 fi yecho ${1:0:4} mecho ${1:4:2} decho ${1:6:2} if echo $d|grep -q ^0 then decho ${1:6:2}|sed s/^0// fi if cal $m $y /dev/null 2/dev/null then if ! cal $m $y|grep -qw $d then echo 你给的日期是不合法的 else echo 日期合法 fi else echo 你给的日期不合法 fi25、写一个监控网卡的脚本需要满足以下要求1. 每10分钟检测一次指定网卡的流量。2. 如果流量为0则重启网卡。#!/bin/bash LANGen sar -n DEV 1 10|grep -w $1 /tmp/sar.tmp ingrep Average: /tmp/sar.tmp|awk {print $5}|sed s/\.// outgrep Average: /tmp/sar.tmp|awk {print $6}|sed s/\.// if [ $in 000 ] [ $out 000 ] then ifdown $1 ifup $1 fi

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询