shell
AllanRobinLukeman
云计算IaaS运维,Linux,虚拟化,Openstack,数据库,考证
展开
-
一个简单的linux系统监控脚本
在这个脚本中,我们首先使用 ip 和 awk 命令获取系统的 IP 信息和 MAC 信息。然后,我们使用 df 和 awk 命令获取根分区的磁盘使用率。如果根分区使用率超过 70%,我们使用 find 和 delete 命令删除 /var/log 目录下的所有 .log 文件。# 如果根分区使用率超过 70%,删除 /var/log 目录下的 .log 文件。最后,我们打印出系统的 IP 信息、MAC 信息和根分区的磁盘使用率。# 获取系统的 IP 信息和 MAC 信息。原创 2024-04-03 22:23:33 · 141 阅读 · 0 评论 -
Shell脚本判断文件可读,可写,可执行,是否为文件
在这个脚本中,我们使用了`-f`选项来检查文件是否存在,`-r`选项来检查文件是否可读,`-w`选项来检查文件是否可写,`-x`选项来检查文件是否可执行。然后,我们使用`[ -f "$1" ]`来检查文件是否为普通文件。如果文件存在并且是一个普通文件,我们将输出文件的可读性、可写性、可执行性以及是否为普通文件的信息。如果文件不存在,我们将输出"文件不存在"。其中`filename`是你要检查的文件的名称。脚本将输出文件的相关信息。原创 2024-02-21 20:49:14 · 527 阅读 · 0 评论 -
每隔60s修改文本内容修改10次shell脚本
1、需求:对一个文件修改10次,确保文件的mtime刷新,触发对保护文件的告警。原创 2024-02-19 21:32:23 · 116 阅读 · 0 评论 -
shell脚本中的控制程序流程介绍
在 Linux shell 脚本中,有多种控制程序流程的语句,包括条件语句、循环语句和分支语句。这只是一些常见的语句,实际上,shell 脚本中还有很多其他的控制流语句,具体的用法可以参考相关的文档和教程。# 当 $var 的值等于 value1 时执行的代码。# 当 $var 的值等于 value2 时执行的代码。# 当 $var 的值不等于上述任何值时执行的代码。- case 语句:根据变量的值来执行不同的操作。- if 语句:根据条件的真假来执行不同的操作。- for 循环:遍历一系列的值。原创 2024-02-16 21:33:41 · 320 阅读 · 0 评论 -
入门shell练习
1、自定义局部变量2、###作为交互式输入手段,可以利用 read 命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。其一般格式是:read 变量 1 [变量 2...]3、执行如下步骤,配置用户变量4、执行如下步骤,配置系统环境变量5、位置参数6、shell中的特殊字符新建脚本ex3.sh,写入如下内容:Linux中其他特殊变量列表 变量 含义 $0 当前脚本的文件名...原创 2021-08-16 15:14:24 · 161 阅读 · 0 评论 -
入门级shell练习题7
创建或目录文件 - 该脚本应当有交互功能 - 该脚本用于备份系统目录 - 需要给予用户提示,提示用户应当输入目录或者文件名 - 判断用户要备份的文件是否存在,如果不存在则告知用户,并输出相应错误 - 判断用户要备份的目标目录是否存在,如果该目录不存在,则需要问用户是否创建,如果该目录已经存在,则需要问用户是否重命名该目录#!/bin/bash#This is a shell for backup the system dirread -p "Please ...原创 2021-08-25 11:03:30 · 113 阅读 · 0 评论 -
入门级shell练习题6
题目:测试IP是否可达 - 根据iplist.txt文件中列举的IP地址,判断IP地址是否可达。 - 只显示可达的IP地址。(不可达的可以使用 >> /dev/null)脚本1:#!/bin/bash#This is a shell script for checking the ip is arrive or notfile=$(cat ./iplist.txt)for i in $filedo ping -c1 -w1 $i &> /dev...原创 2021-08-24 18:02:44 · 102 阅读 · 0 评论 -
入门级shell练习题5
题目:反向输出 - 当用户输入yes,显示no - 当用户输入no,显示yes - 当用户输入其它,提示用户输入yes/no - 忽略大小写脚本:#!/bin/bash#This is a shell script for input yes to noread -p "Please enter your choose: " chooseif [ $choose == yes ] || [ $choose == YES ]then echo "no"e...原创 2021-08-24 10:19:03 · 148 阅读 · 0 评论 -
入门级shell练习题4
题目:测试用户是否存在,并判断是否是超级用户 - 写一个脚本:如果指定的用户存在,先说明其已经存在,并显示其ID号和SHELL,并判断是否是超级用户;否则,就创建用户,并显示其ID号脚本如下:#!/bin/bash#This shell script is for judge user is or not userread -p "Please enter your account name: " userID=`cat /etc/passwd | grep ^$user | ..原创 2021-08-23 10:12:10 · 113 阅读 · 0 评论 -
入门shell练习题3
新建用户 - 新建一个用户名列表namefile - 新建一个脚本,该脚本能够实现根据namefile自动创建用户,且密码随机生成。用户创建后将用户名和密码导入到/root/loginname.txt中。 - 随机密码生成可以使用:openssl rand -base64 6[root@centos-jifu-vm shell]# cat useraddpam.sh#!/bin/bashfile='namefile'for user in $(cat $file)d...原创 2021-08-18 17:12:09 · 219 阅读 · 0 评论 -
入门shell练习题2
编写一个脚本,该脚本可以判断当前用户是否为root。[root@centos-jifu-vm ~]# cat ifroot.sh#!/bin/bashif [ "`echo $USER`" == root ]then echo "The current logining user is root"else echo "No, it is not root account"fi编写一个脚本,该脚本可以判断今天是否为休息日。[root@centos-jifu-vm ~]#原创 2021-08-18 17:07:12 · 287 阅读 · 0 评论 -
入门shell练习题1--磁盘清理判断
题目要求:脚本实现输出机器信息 - 将本机的网卡的IP地址和MAC地址截取出来,输出到/root/nic - 将本机的磁盘使用情况截取出来 输出到 /root/disk - 判断系统空间使用的情况,如果 / 使用率大于30% 则删除 /tmp 的内容[root@centos-jifu-vm shell]# vim systemces.sh#!/bin/bash#This shell script is for monitoring diskUsage&IP&M...原创 2021-08-18 16:40:44 · 154 阅读 · 0 评论 -
条件判断和循环结构---shell
1.1 if语句1.1.1 语法示例步骤:新建脚本ex4.sh,内容如下[root@centos-jifu-vm ~]# cat ex4.sh#!/bin/basha=3b=$1if [ $a == $b ]then echo "You win!"else echo "Please guess again."fi1.1.2 测试语句新建ex5.sh,内容如下[root@centos-jifu-vm ~]# cat ex5.s..原创 2021-08-16 17:53:32 · 114 阅读 · 0 评论 -
shell脚本--case脚本案例
case执行流程:首先使用变量值与数值1进行比较,若取值相同则执行数值1后的命令序列,直到遇见双分号;; 后跳转至esac,表示分支结束;若与数值1不相匹配,则继续与数值2 进行比较,若取值相同则执行数值2 后的命令序列,直到遇见双分号;; 后跳转至esac,表示结束分支,……依次类推,若找不到任何匹配的值,则执行默认模式*) 后的命令序列,直到遇见esac后结束分支。格式:case 变量值 in数值1)命令序列;;数值2)命令序列;;…*)默认命令序列esac案.原创 2020-11-26 16:03:32 · 393 阅读 · 0 评论 -
shell脚本磁盘监控
示例2:监控服务器主机的磁盘使用情况,主机用于服务器,监控服务器磁盘容量的使用情况是极其重要的。当下我们写一个脚本用于监控服务器磁盘容量的使用情况,当磁 盘容量的百分比大于90%时,主机自动发邮件给运维管理员,并且此脚本每五分钟监控一次。 首先写一个监控服务器主机的磁盘容量使用情况shell脚本,然后使用crontab定时执行即可。 监控shell脚本如下(monitor.sh)#! /bin/bash#获取服务器磁盘空间使用百分数#这条语句使...原创 2020-10-24 22:53:59 · 865 阅读 · 0 评论 -
shell脚本备份mysql
示例1:备份远程mysql服务器的数据库数据,主机名:192.168.0.200,端口号:3306,用户名:root,备份数据库:demo与beego,备份数据的存储目录是$HOME/data/mysql。首先建立两个文件,一个用于配置MYSQL相关信息,另一个用于执行备份过程。数据库配置信息文件(config.cfg)config.cfgcat config.cfghost=192.168.0.200#端口port=3306#用户user=root#备份的数据库名称,属组db.原创 2020-10-24 22:04:05 · 472 阅读 · 0 评论 -
linux Shell的2>&1的解释
关于2>1&的含义:含义:将标准错误输出重定向到标准输出 符号>&是一个整体,不可分开,分开后就不是上述含义了。 比如有些人可能会这么想:2是标准错误输入,1是标准输出,>是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"2>1"就行了?是这样吗? 如果是尝试过,你就知道2>1的写法其实是将标准错误输出重定向到名为"1"的文件里去了 写成2&>1也是不可以的为什么2>&1要放在后面考虑如下一条sh转载 2020-09-14 14:42:32 · 237 阅读 · 0 评论 -
99乘法表脚本--shell and python
以下实例演示了如何实现九九乘法表:shell方式:#! /bin/bash#9*9乘法表for i in `seq 9`do for j in `seq 9` do echo -n "$i*$j=$[i*j] " done echodone~[root@ecs 30]# ./cal99.sh1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=92*1=2 2*2=4 2*3=6 2*4=8 2*5=10原创 2020-08-26 17:52:28 · 523 阅读 · 0 评论 -
shell脚本珍藏03
设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。思路:判断条件: while [ $i -le 50]递增判断: i=$(($i+1))mkdir -p /userdata/$dir根据描述可以得出权限为754#! /bin/bashi=1while [ $i -le 50 ]do mkdir -p /u原创 2020-08-26 16:30:32 · 318 阅读 · 0 评论 -
shell脚本珍藏02
2.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。思路:先需要创建一个组,组名是class1接着创建用户,(i=1, i<=30, i=i+1)用户名有两种情况 stu0${i} (i <=9) stu{i} (i>9)接着需要创建用户家目录,修改用户属组代码如下:#! /bin/bash# new a class1 and useradd 30 users,...原创 2020-08-26 15:32:13 · 554 阅读 · 0 评论 -
自动拉起应用-shell脚本2
设计思路: 用户web业务总出现down机,对应的web界面502,承载web业务的java进程存在假死或者因为自身CPU或内存飙升,而实际不可用根据curl负载均衡实际的web域名,截取关键字段http_code根据http_code是不是200,进行两种处理策略http_code = 200打印业务正常http_code != 200进行强杀僵死java进程,拉起业务进程并配置定时任务,每隔5分钟执行#!/bin/bash#This is a shell for re..原创 2020-08-11 14:28:42 · 274 阅读 · 0 评论 -
docker日志清理---定时删除
客户有一台linux虚拟机(基于centos7),业务部署在docker,docker运行的日志特别大,跟客户确认后日志无需备份,只需定时清理#!/bin/sh time=$(date "+%Y-%m-%d %H:%M:%S")echo "---------------------------------------------------------------------------"echo "----- start clean docker containers logs on ${t原创 2020-08-11 11:22:32 · 1758 阅读 · 0 评论 -
自动拉起应用--shell脚本
客户有一台应用虚拟机linux(基于centos7)总是出现down机,导致业务web出现502拉起思路: 1 查询业务进程在 输出running 业务进程不再,配置自动拉起命令(脚本中)结合定时任务crond#!/bin/bash#This is a shell for repair this application imedidately!#time=$(date "+%Y-%m-%d %H:%M:%S")echo "----------------------...原创 2020-08-11 12:04:25 · 644 阅读 · 0 评论 -
shell脚本实战2
shell脚本的目标是让系统管理员过的更轻松。如果你碰巧工作在一个拥有大量用户的环境中,最烦人的工作之一就是创建新用户账号。好在可以使用while循环来降低工作的难度。 你不用为每个需要创建的新用户账户手动输入useradd命令,而是可以将需要添加的新用户账户放入一个文件文件中,然后创建一个简单的脚本进行处理。这个文本文件的格式为userid,user name第一个条目是你为新用户账户选用的用户ID。第二个条目是用户的全名。两个值之间使用逗号分隔,这样就形成了一种名为逗号分隔值的文件格式(或者是.原创 2020-08-26 11:11:39 · 202 阅读 · 0 评论 -
shell脚本实例01
现在你已经看到shell脚本中各种循环的使用方法,来看一些实际应用的例子吧。循环是对系统数据进行迭代的常用方法,无论是目录中的文件还是文件中的数据。下面的一些例子演示了如何使用简单的循环来处理数据。1.1 查找可执行的文件 当你从命令行中运行一个程序你的时候,linux系统会搜索一系列目录来查找对应的文件,这些目录被定义在环境变量PATH中。如果你想找出系统中有哪些可执行文件可供使用,只需要扫描PATH环境变量中所有的目录就行了。如果要徒手查找的话,就得花点时间了。不过我们可以编写一个小小的脚..原创 2020-08-26 09:51:54 · 177 阅读 · 0 评论 -
until命令---shell脚本
until命令和while命令工作的方式完全相反。until命令要求你指定一个通常返回非零退出状态码的测试命令。只要测试命令的状态码不为0,bash shell才回执行循环中列出的命令。一旦测试命令返回了状态码0,循环就结束了。和你想的一样,until命令的格式如下:until test commandsdo other commandsdone和while命令类似,你可以在until命令语句中放入多个测试命令。只有最后一个命令状态退出码决定了bash shell是否执行已...原创 2020-08-26 09:25:38 · 717 阅读 · 0 评论 -
while命令2--shell脚本
while命令允许你在while语句定义多个测试命令。只有在最后一个测试命令的退出状态码会被用来决定什么时候结束循环。如果你不够小心,可能会导致一些有意思的结果。下面的例子将会说明这一点。[root@ecs robin]# cat while2.sh#! /bin/bash# testing a multicommand while loopvar1=10while echo $var1 [ $var1 -ge 0 ]do echo "This is inside th原创 2020-08-25 17:56:03 · 189 阅读 · 0 评论 -
while命令----shell脚本
while的基本格式while test commanddo other commandsdonewhile 命令中定义的test command和if-then语句的格式一模一样。可以使用任何普通的bash shell命令,或者用test命令进行条件测试,比如测试变量值。while命令的关键在于所制定的test command 的退出状态吗必须随着玄幻中运行的命令而改变。如果推出状态码不发生变化,while循环将一直不停的进行下去。最常见的test command...原创 2020-08-25 17:28:42 · 760 阅读 · 0 评论 -
C语言风格的for命令---shell脚本
bash shell智齿一种for循环,它看起来跟C语言风格的for循环类似,但有一些细微的不同,其中还包括了一些让shell脚本程序员困惑的东西,以下是bash中C语言风格的for循环的基本格式。在C语言中,for循环通常定义ige变量,然后这个变量会在每次迭代时自动改变。for (( variable assignment ; condition ; iteraation process ))C语言风格的for循环的格式会让bash shell 脚本程序员摸不着头脑,因为它使用了C语言风格.原创 2020-08-18 11:13:29 · 386 阅读 · 0 评论 -
linux for循环脚本例子01
例子1:从命令读取值目的:在linux系统中创建多个普通用户,用户名来自user.txtlimingzhangsanlisiwangwuhuluzhangjijina设计思路:遍寻file文件中所有内容,并用useradd $var添加用户名为变量值的普通用户#!/bin/bashfile='user.txt' #定义file文件for i in $(cat $file) #遍寻file文件中的变量ido useradd $i #增加file文件中原创 2020-08-18 10:18:45 · 397 阅读 · 0 评论