linux之shell语言
----------------------------------目录--------------------------------------------------
目录(if开头为if语句,for开头为for语句,if5.sh为case语句)
if1.sh:判断根分区使用率,大于60会报警
if2.sh:备份数据库、目录、文件等等
if3.sh:判断httpd是否启动,如果没有启动会自动启动流程
if4.sh:判断输入的是什么文件类型
if5.sh:选择一个你想去的城市(用caase语句)
for1.sh:依次输出数字1-6
for2.sh:批量解压脚本
for2.1.sh:统计if目录下以.sh结尾文件的个数
for3.sh:求1到100的总和
useradd.sh:批量添加用户
----------------------------正文--------------------------------------------
if1.sh:判断根分区使用率,大于60会报警
vim if1.sh
#!/bin/bash
#判断根分区磁盘占有率过高的问题。>=60%
rate=$( df -h | grep /dev/mapper/cl-root | awk '{print $5 }' | cut -d "%" -f 1 )
if [ $rate -ge 60 ]
then
echo "Waring!根分区磁盘占有率过高!!!"
fi
---------------------------
if2.sh:备份数据库、目录、文件等等
vim if2.sh
#!/bin/bash
#备份文件夹或者数据库等等。
date=$(date +%y%m%d)
size=$(du -sh /root/chen)
if [ -d /tmp/dbback ] #判断dbback这个文件是否存在
then
echo "Date is: $date" > /tmp/dbback/db.txt #输出时间,以21230这种格式
echo "Size is: $size" >> /tmp/dbback/db.txt #统计大小
cd /tmp/dbback
tar -zcf chen_$date.tar.gz /root/chen /tmp/dbback/db.txt &>/dev/null #在tmp/dbback下面进行打包
rm -rf /tmp/dbback/db.txt
else
mkdir /tmp/dbback
echo "Date is:$date" > /tmp/dbback/db.txt
echo "Size is:$size" >>/tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf chen_$date.tar.gz /root/chen /tmp/dbback/db.txt $>/dev/null
rm -rf /tmp/dbback/db.txt
fi
--------------------------
if3.sh:判断httpd是否启动,如果没有启动会自动启动流程
vim if3.sh
#!/bin/bash
#判断apache是否启动:service httpd restart,停止service httpd stop
#如果停止不了,ps命令,然后kill杀掉进程。
rate=$(nmap 192.168.61.128 | grep "tcp" | grep "http" | awk '{ print $2 }' ) #nmap命令与awk命令结合使用,筛选出“open”
if [ "$rate" == "open" ] #如果$tate等于open
then
echo "$(date) httpd is ok !!!" >> /tmp/httpd_acc.log
else
/etc/rc.d/init.d/httpd restart &>/dev/null #启动httpd
echo "$(date) httpd reboot!!" >> /tmp/httpd_err.log
fi
---------------------------------
if4.sh:判断输入的是什么文件类型
vim if4.sh
#!/bin/bash
#判断用户输入的是什么文件
read -p "please input a filename:" file
if [ -z "$file" ] #判断file变量是否为空
then
echo "Error please "
exit 1
elif [ ! -e "$file" ] #判断file这个值是否存在
then
echo "you input is not a file" #如果file这个值不存在
exit 2
elif [ -f "$file" ] #判断file变量是否为普通文件
then
echo " $file is a regulare file !"
elif [ -d "$file" ] #判断file变量是否为目录文件
then
echo "$file is a direcotry!"
else
echo "$file is an other file!"
fi
--------------------------
if5.sh:选择一个你想去的城市(用caase语句)
vim if5.sh
#!/bin/bash
echo "如果你想去上海,请选择1"
echo "如果你想去广州,请选择2"
echo "如果你想去成都,请选择3"
read -t 30 -p "请选择你想去的城市:" cho
case "$cho" in
"1")
echo "上海欢迎你!"
;;
"2")
echo "广州欢迎你!!"
;;
"3")
echo "成都欢迎你!"
;;
*)
echo "请按提示输入1/2/3 !!!!!!"
;;
esac
---------------------------------------
for1.sh:依次输出数字1-6
vim for1.sh
#!/bin/bash
#一次输出数字1-6
for i in 1 2 3 4 5 6
do
echo "$i"
done
--------------
for2.sh:批量解压脚本
vim for2.sh
#!/bin/bash
#批量解压脚本
cd /root/sh/if
ls *.sh >ls.log
for i in $(cat ls.log)
do
tar -zcf $i &>/dev/null
rm -rf /root/sh/if/ls.log
done
---------------------
for2.1.sh:统计if目录下以.sh结尾文件的个数
vim for2.1.sh
#!/bin/bash
#统计if文件下以.sh的个数
cd /root/sh/if
ls *.sh >ls1.log
y=1
for i in $(cat ls1.log)
do
echo "$y"
y=$(($y + 1))
done
-----------------
for3.sh:求1到100的总和
vim for3.sh
#!/bin/bash
#求1加到100的总和
s=0
for ((i=1;i<=100;i++))
do
s=$(($s + $i))
done
echo "1+2+3+...100总和为:$s"
----------------------------
useradd.sh:批量添加用户
vim useradd.sh
#!/bin/bash
#批量添加用户
read -t 30 -p "请输入添加的同户名:" name
read -t 30 -p "请输入添加的个数:" number
read -t 30 -p "请输入初始密码:" pass
if [ ! -z "$name" -a ! -z "$number" -a ! -z "$pass" ]
then
y=$(echo $number | sed 's/^[0-9]*$'//g)
if [ -z "$y" ]
then
for((i=1;i<=$number;i++))
do
useradd $name$i &>/dev/null
echo $pass | passwd --stdin "$name$i" &>/dev/null
done
fi
fi
linux之shell语言相关推荐
- linux 系统 Shell语言 基础
linux 系统 Shell语言 基础 第一章 Shell 编程 1 . 概述 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Sh ...
- linux的shell脚本语法与C语言不同之一
Linux的shell脚本和C语言有很多类似的地方. 比如有for循环,while等等. 但是具体的语句书写上是有区别的. 随时总结,现在给出目前的例子. if [ -d /home/ ]; th ...
- Linux学习笔记(七)——shell语言
七.Shell语言 (一).shell概述 1.Shell简介 · Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂 ...
- Python在Linux实现代码特效,关于在Linux系统上的Ubuntu上基于python3、shell语言代码的实现...
首先打开执行终端,然后进入路径(执行文件的目录): 1.python3语言代码的实现步骤: 1>python3 xxx.py(一步实现) 2.shell语言代码的实现步骤: 1>获取属主的 ...
- Linux Shell语言并发执行多条命令
shell语言的并发 Default模式下,shell命令是阻塞执行的,可以通过其后添加&让这条命令异步执行,如: sleep 10 & 执行这条命令后,并不会阻塞10秒,而是立即返回 ...
- linux shell脚本if,linux的shell脚本中if,for,while的解析与应用
linux的shell中有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),它们对我们平时的脚本编写和命令输入都有很大的作用,掌握了这些一定会对我们有很大的帮助. 一. ...
- 为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要1...
为什么80%的码农都做不了架构师?>>> 为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水? 由于目前国内嵌入 ...
- Linux的shell脚本函数教程
Linux的shell脚本函数教程 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.shell中函数使用示例 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.she ...
- Linux下C语言编程-进程的创建
Linux下C语言编程-进程的创建 作者:hoyt 1.进程的概念 Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系统发出各种命令.那么操作系统是怎么实现多用户的环境呢?在现代的操作 ...
最新文章
- openstack之keystone
- 转载 - 通过设置P3P头来实现跨域访问COOKIE
- 关于CKEditor 4.0 过滤html标签
- wxWidgets:wxGenericAboutDialog类用法
- 异步IO\数据库\队列\缓存
- HDU多校2 - 6774 String Distance(序列自动机优化lcs)
- java处理url中的特殊字符%等
- 如何系统自学python_如何系统地自学 Python?
- PostgreSQL初学
- 2020-01-14 转载【dpdk】使用libpcap-PMD驱动收发包
- flask如何查询mysql_如何从Flask应用中的MySQL查询返回数据?
- AJAX最大的特点以及作用是什么?经典面试题
- windows server 2003 系统提权
- 声卡性能测试软件,RightMark Audio Analyzer音频声卡测试软件
- 【历史上的今天】1 月 1 日:惠普诞生;互联网的规范化;百度成立
- 移动端日历组件设计与实现
- MATLAB求解一元二次方程
- 塑身必知常识:究竟是有氧运动还是无氧运动好?
- 【LGP5108】仰望半月的夜空
- 太湖2018年渔业产值达7.3亿元 今年大闸蟹产量将降低