山东省交通运输厅网站开发单位,赣州广播电视台,室内设计联盟官方网站下载,自建站推广方式#xff08;1#xff09;编写脚本#xff1a;提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户
#!/bin/bash # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户 # 不输入账户名,则提示必须输入账户名并退出脚本;如果用…1编写脚本提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户
#!/bin/bash # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户 # 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默 # 认的 123456 作为默认密码。
read -p 请输入用户名 user #使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2 #没有输入用户名脚本退出后,使用$?查看的返回码为 2
if [ -z $user ]; thenecho 您不需要输入账户名 exit 2
fi
#使用 stty ‐echo 关闭 shell 的回显功能
#使用 stty echo 打开 shell 的回显功能
stty -echo
read -p 请输入密码 pass
stty echo
pass${pass:-123456}
useradd $user
echo $pass | passwd --stdin $user 2使用脚本对输入的三个整数进行排序
#!/bin/bash# 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
read -p 请输入一个整数 num1
read -p 请输入一个整数 num2
read -p 请输入一个整数: num3# 不管谁大谁小,最后都打印 echo $num1,$num2,$num3
# num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值
# 如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调
tmp0
# 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num2 ];thentmp$num1num1$num2num2tmp
fi
# 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num3 ];thentmp$num1num1$num3num3$tmp
fi
# 如果 num2 大于 num3,就把 num2 和 num3 对调,确保 num2 变量中存的是最小值
if [ $num2 -gt $num3 ];thentmp$num2num2$num3num3$tmp
fi
echo 排序后数据从小到大为$num1,$num2,$num3 3根据计算机当前时间返回问候语可以将该脚本设置为开机启动
#!/bin/bash # 根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动
# 00‐12 点为早晨,12‐18 点为下午,18‐24 点为晚上 # 使用 date 命令获取时间后,if 判断时间的区间,确定问候语内容
tm$(date %H)
if [ $tm -le 12 ];thenmsgGood Morning $USER
elif [ $tm -gt 12 -a $tm -le 18 ];thenmsgGood Afternoon $USER
elsemsgGood Night $USER
fi
echo 当前时间是:$(date %Y‐%m‐%d %H:%M:%S)
echo -e \033[34m$msg\033[0m 4将 I lov cls 写入到 txt 文件中
#!/bin/bashcd /home/wenmin/
touch wenxing.txt
echo I lov cls wenxing.txt 5脚本编写 for 循环判断
#!/bin/bashs0;
for((i1;i100;i))
do s$[$s$i]
done echo $sr0;
a0;
b0;
for((x1;x9;x))
do a$[$a$x]
echo $x
done
for((y1;y9;y))
do b$[$b$y]
echo $ydoneecho $r$[$a$b] 6脚本编写 for 循环判断
#!/bin/bashfor i in $*
do echo wenmin xihuan $i
donefor j in $
do echo wenmin xihuan $j
done 7脚本 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
#!/bin/bash # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
# vim /root/logbak.sh # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 # 注意 date 命令需要使用反引号括起来,反引号在键盘tab键上面
tar -czf log-date %Y%m%d.tar.gz /var/log # crontab -e #编写计划任务执行备份脚本
00 03 * * 5 /home/wenmin/datas/logbak.sh 8脚本编写 求和 函数运算 function xx()
#!/bin/bashfunction sum()
{s0;s$[$1$2]echo $s
}
read -p input your parameter p1
read -p input your parameter p2sum $p1 $p2function multi()
{r0;r$[$1/$2]echo $r
}
read -p input your parameter x1
read -p input your parameter x2multi $x1 $x2v11
v22
let v3$v1$v2
echo $v3 9脚本编写 case — esac 分支结构表达式
#!/bin/bash case $1 in
1) echo wenmin
;;
2)echo wenxing
;;
3) echo wemchang
;;
4) echo yijun
;;
5)echo sinian
;;
6) echo sikeng
;;
7) echo yanna
;;
*)echo danlian
;;
esac 10# 定义要监控的页面地址对 tomcat 状态进行重启或维护
#!/bin/sh
# function:自动监控tomcat进程挂了就执行重启操作
# author:huanghong
# DEFINE # 获取tomcat PPID
TomcatID$(ps -ef |grep tomcat |grep -w apache-tomcat-7.0.75|grep -v grep|awk {print $2}) # tomcat_startup
StartTomcat/opt/apache-tomcat-7.0.75/bin/startup.sh #TomcatCache/usr/apache-tomcat-5.5.23/work # 定义要监控的页面地址
WebUrlhttp://192.168.254.118:8080/# 日志输出
GetPageInfo/dev/null
TomcatMonitorLog/tmp/TomcatMonitor.log Monitor() { echo [info]开始监控tomcat...[$(date %F %H:%M:%S)] if [ $TomcatID ]then echo [info]tomcat进程ID为:$TomcatID. # 获取返回状态码 TomcatServiceCode$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code}) if [ $TomcatServiceCode -eq 200 ];then echo [info]返回码为$TomcatServiceCode,tomcat启动成功,页面正常. else echo [error]访问出错状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo echo [error]开始重启tomcat kill -9 $TomcatID # 杀掉原tomcat进程 sleep 3 #rm -rf $TomcatCache # 清理tomcat缓存 $StartTomcat fi else echo [error]进程不存在!tomcat自动重启... echo [info]$StartTomcat,请稍候...... #rm -rf $TomcatCache $StartTomcat fi echo ------------------------------ } Monitor$TomcatMonitorLog 11通过位置变量创建 Linux 系统账户及密码
#!/bin/bash
# 通过位置变量创建Linux 系统账户及密码
# $1 是执行脚本的第一个参数$2 是执行脚本的第二个参数
useradd $1
echo $2 | passwd --stdin $1 12对变量的传入与获取个数及打印
#!/bin/bash
echo $0 $1 $2 $3 // 传入三个参数
echo $# //获取传入参数的数量
echo $ //打印获取传入参数
echo $* //打印获取传入参数 13实时监控本机内存和硬盘剩余空间剩余内存小于500M、根分区剩余空间小于1000M时发送报警邮件给root管理员
#!/bin/bash
# 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员# 提取根分区剩余空间
disk_size$(df / | awk /\//{print $4})# 提取内存剩余空空间
mem_size$(free | awk /Mem/{print $4})
while :
do
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if [ $disk_size -le 512000 -a $mem_size -le 1024000 ]
thenmail ‐s Warning root EOFInsufficient resources,资源不足
EOF
fi
done 14检查指定目录下是否存在 对应 文件
#!/bin/bashif [ -f /home/wenmin/datas ]
then
echo File exists
fi 15脚本定义while循环语句
#!/bin/bashif [ -f /home/wenmin/datas ]
then
echo File exists
fi[rootrich datas]# cat while.sh
#!/bin/bashs0
i1
while [ $i -le 100 ]
dos$[$s $i]i$[$i 1]
doneecho $s
echo $i 16一键部署 LNMPRPM 包版本
#!/bin/bash # 一键部署 LNMP(RPM 包版本)
# 使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败
# 本脚本使用于 centos7.2 或 RHEL7.2
yum -y install httpd
yum -y install mariadb mariadb-devel mariadb-server
yum -y install php php-mysqlsystemctl start httpd mariadb
systemctl enable httpd mariadb 17读取控制台传入参数
#!/bin/bash
read -t 7 -p input your name NAME
echo $NAMEread -t 11 -p input you age AGE
echo $AGEread -t 15 -p input your friend FRIEND
echo $FRIENDread -t 16 -p input your love LOVE
echo $LOVE 18脚本实现 复制
#!/bin/bashcp $1 $2 19脚本实现文件存在与否的判断
#!/bin/bashif [ -f file.txt ];thenecho 文件存在
else echo 文件不存在
fi