博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell(一) 入门到复杂 自己做的各种脚本实例与解释
阅读量:6229 次
发布时间:2019-06-21

本文共 1699 字,大约阅读时间需要 5 分钟。

Shell变量详解

什么是变量?为什么要使用变量?

各种shell环境中都使用到了“变量”的概念,shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设置或系统环境的变化而相应的变化。通过使用变量,shell程序可以提供更加便捷灵活的功能,实用性和灵活性更强。

常见的shell变量类型包括自定义变量,环境变量,预定义变量,位置变量。

最简单的一个 开机登录提示脚本

备份脚本

Mysql 备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
#mysql 数据库简单备份
#1.定义数据连接目标库信息
MY_USER=
"users"
MY_PASS=
"abc123"
MY_HOST=
"192.168.129.2"
MY_denglu=
"-u $MY_USER -p$MY_PASS -h $MY_HOST"
MY_DB1=
"test"
#2.定义备份时目录,时间,文件名
BF_DIR=
"/opt/mysql_bak"
BF_CMD=
"/usr/local/mysql/bin/mysqldump/"
BF_TIME=
'date +%Y%m%d-%H%M'
NAME=
"$MY_DB1-$BF_TIME"
#导出脚本 进行压缩
$BF_CMD $MY_denglu --databases $MY_DB1 > $BF_DIR
/test
.sql

vsftp脚本

查看脚本

最关键的一个

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
  
#监控磁盘,内存,CPU使用情况
  
3 DUG=$(
df 
-h|
grep 
"/$"
|
awk 
'{print $5}'
|
awk 
-F%
'{print $1}'
)   
//
切割出根系统占用情况
  
4 IDLE=$(mpstat|
tail
-1|
awk 
'{print $11}'
|
awk 
-F. 
'{print $1}'
)     
//
切割出CPU使用情况
  
5 CUG=`expr100- $IDLE`
  
6 USED=$(
free
|
grep
"cache:"
|
awk 
'{print $3}'
)                
// 
切割出内存使用情况
  
7 TOTAL=$(
free
|
grep
"Mem:"
|
awk
'{print $2}'
)
  
8 MUG=`
expr 
$USED \*100 / $TOTAL`
  
#磁盘占用>90% CPU使用>80% 内存使用>90% 告警邮件通过mail发送给管理员
 
10 alert=
"/tmp/"
alert.txt"         变量
 
11if [ -e $alert ]                      如果这个 文件存在则
 
12 
then
 
13    mail -s
"Host Alert"
monitor@benet.com 发送mail给管理员
 
14 
else
 
15    
touch
$alert    如果不存在则重新建立文件
 
16 
fi
 
17 
if
[$DUG-gt 90]             如果系统磁盘占用空间大于90% 那么就打印 DUG-ge90  追加到 alert文件里
 
18 
then
 
19    
echo 
"DUG -ge90"
>>$alert
 
20 
fi
 
21 
if
[ $CUG-gt 80 ]               如果CPU占用空间大于80% 那么就打印 CUG-ge80  追加到 alert文件里
 
22 
then
 
23    
echo
"CUG -ge80"
>>$alert
 
24 
fi
25 
if 
[ $MUG -gt 80 ]     如果内存占用空间大于80% 那么就打印 MUG-ge80  追加到 alert文件里
26 
then
27     
echo 
"MUG -ge80" 
>> $alert
28 
fi
本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1230337

转载地址:http://vkina.baihongyu.com/

你可能感兴趣的文章
Mac下没有make命令解决办法
查看>>
DLL中传递STL参数
查看>>
postgresql 范围类型
查看>>
隐藏 tengine 和 tomcat 版本号
查看>>
非面试向跨域实践详解
查看>>
一个非常好看的图片选择框架LPhotoPicker,确定不来看看么
查看>>
线上压缩代码-定位错误
查看>>
一个简洁且强大的状态管理库 - iFlow
查看>>
IP地址转换函数——inet_pton inet_ntop inet_aton inet_addr inet_ntoa
查看>>
设计模式笔记---4. 装饰模式
查看>>
springmvc + mybatis + ehcache + redis 分布式架构
查看>>
爬虫学习日记(四)分析Freenium
查看>>
nginx事件模块 -- 第五篇 epoll add
查看>>
共享栈基本操作
查看>>
Java 生成 PDF 文档
查看>>
深度学习:用生成对抗网络(GAN)来恢复高分辨率(高精度)图片 (附源码,模型与数据集)...
查看>>
缓存与数据库双写,不一致问题及解决方案
查看>>
Swift基础-部分关键字说明与示例
查看>>
【云服务月刊】2018年第1期:阿里云客户服务部总经理张颖杰:用心聆听,服务见智...
查看>>
99%的Java程序员都不知道的Spring中的@Transactional注解的坑
查看>>