#!/bin/bash mem=`free -m |sed -n '2p'|awk '{print $3/$2*100}'` if [ `echo "$mem>10"|bc` -eq 1 ];then echo `date "+%Y/%m/%d %H;%M;%S"`" 内存负载过高 $mem%" >> 1.txt fi 换一种表达方式
时间: 2024-03-19 11:40:54 浏览: 16
#!/bin/bash
mem=$(free -m | awk 'NR==2{printf "%.2f\n", $3*100/$2 }')
if (( $(echo "$mem > 10" | bc -l) )); then
echo "$(date "+%Y/%m/%d %H;%M;%S") 内存负载过高 $mem%" >> 1.txt
fi
相关问题
常用的运维shell脚本具体代码
以下是一些常用的运维 shell 脚本的示例代码:
1. 监控脚本:
```shell
#!/bin/bash
# 检查 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "CPU 使用率:$cpu_usage%"
# 检查内存使用率
mem_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
echo "内存使用率:$mem_usage%"
# 检查磁盘使用率
disk_usage=$(df -h | awk '$NF=="/"{printf("%s"), $5}')
echo "磁盘使用率:$disk_usage"
# 检查网络流量
network_usage=$(ifconfig eth0 | awk '/RX packets/{print $5}')
echo "网络流量:$network_usage packets"
```
2. 备份脚本:
```shell
#!/bin/bash
# 备份目录
backup_dir="/path/to/backup"
# 备份文件名
backup_file="backup_$(date +%Y%m%d%H%M%S).tar.gz"
# 执行备份
tar -czvf "$backup_dir/$backup_file" /path/to/data
echo "备份完成:$backup_dir/$backup_file"
```
3. 自动化部署脚本:
```shell
#!/bin/bash
# 安装依赖软件
apt-get install -y package1 package2 package3
# 配置文件
config_file="/path/to/config.conf"
# 修改配置文件
sed -i 's/old_value/new_value/g' "$config_file"
# 重启服务
service service_name restart
```
4. 日志分析脚本:
```shell
#!/bin/bash
# 日志文件
log_file="/path/to/log.txt"
# 搜索关键字
keyword="error"
# 查找包含关键字的行
grep "$keyword" "$log_file"
```
5. 性能优化脚本:
```shell
#!/bin/bash
# 关闭不需要的服务
service service_name stop
# 清理缓存
sync && echo 3 > /proc/sys/vm/drop_caches
# 启动性能监控工具
perf top
```
6. 安全脚本:
```shell
#!/bin/bash
# 修改用户密码
user="username"
new_password="new_password"
echo -e "$new_password\n$new_password" | passwd "$user"
# 扫描网络漏洞
nmap -p 1-65535 -T4 -A -v target_ip
```
请注意,这些示例代码仅供参考,你需要根据实际需求进行修改和适配。
给我写一个监控centos系统状态的脚本
### 回答1:
以下是一个简单的监控 CentOS 系统状态的脚本示例:
```
#!/bin/bash
# 获取 CPU 使用率
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 获取内存使用率
mem=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
# 获取磁盘使用率
disk=$(df -h | awk '$NF=="/"{printf "%s", $5}')
# 获取网络流量
rx=$(ifconfig enp0s3 | grep "RX bytes" | awk '{print $2}')
tx=$(ifconfig enp0s3 | grep "TX bytes" | awk '{print $6}')
# 输出结果
echo "CPU使用率: $cpu"
echo "内存使用率: $mem"
echo "磁盘使用率: $disk"
echo "网络流量(RX/TX): $rx / $tx"
```
注意:上面的脚本中使用了如 top、free、df、ifconfig等命令,这些命令可能需要在系统中预先安装。
请根据你的系统环境修改网卡名称,如 enp0s3。
运行方法:
```
chmod +x sys_monitor.sh
./sys_monitor.sh
```
这样就可以查看当前 CPU、内存、磁盘、网络流量的使用状态。
### 回答2:
当然可以!以下是一个简单的监控CentOS系统状态的脚本:
```bash
#!/bin/bash
# 检查系统负载
loadavg=$(cat /proc/loadavg | awk '{print $1}')
echo "系统负载:$loadavg"
# 检查CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "CPU使用率:$cpu_usage%"
# 检查内存使用情况
total_mem=$(free -m | awk '/Mem:/{print $2}')
used_mem=$(free -m | awk '/Mem:/{print $3}')
free_mem=$(free -m | awk '/Mem:/{print $4}')
echo "内存使用情况:已使用 $used_mem MB,剩余 $free_mem MB,总计 $total_mem MB"
# 检查磁盘空间
disk_usage=$(df -h | awk '$NF=="/"{print $5}')
echo "磁盘使用率:$disk_usage"
# 检查网络连接数
net_connections=$(netstat -ant | grep ESTABLISHED | wc -l)
echo "网络连接数:$net_connections"
# 检查系统时间
system_time=$(date "+%Y-%m-%d %H:%M:%S")
echo "系统时间:$system_time"
```
你可以将以上脚本保存为一个文件(比如`system_monitor.sh`),然后在CentOS系统上通过运行`bash system_monitor.sh`来执行该脚本。脚本会输出系统的负载、CPU使用率、内存使用情况、磁盘使用率、网络连接数和系统时间等信息。你也可以根据具体需求进行修改和扩展。
### 回答3:
这是一个监控CentOS系统状态的脚本示例:
#!/bin/bash
# 检查CPU的负载
cpu_load=$(uptime | awk '{print $(NF-2)}' | sed 's/,//')
echo "当前CPU负载:$cpu_load"
# 检查内存的使用情况
total_mem=$(free -h | awk 'NR==2{print $2}')
used_mem=$(free -h | awk 'NR==2{print $3}')
echo "内存使用情况:已使用 $used_mem / 总共 $total_mem"
# 检查磁盘的使用情况
disk_usage=$(df -h | awk '$NF=="/"{print $5}')
echo "磁盘使用情况:$disk_usage"
# 检查网络连接情况
active_connections=$(netstat -an | grep ESTABLISHED | wc -l)
echo "活动连接数:$active_connections"
# 检查系统负荷情况
system_load=$(uptime | awk '{print $NF}')
echo "系统负荷:$system_load"
# 检查重要服务的运行状态
services=("httpd" "mysql" "ssh")
for service in ${services[@]}
do
if systemctl is-active --quiet $service; then
echo "服务 $service 正在运行"
else
echo "服务 $service 未运行"
fi
done
将以上脚本保存为一个.sh文件,然后运行该脚本,即可获取当前CentOS系统的状态信息。
脚本中使用不同的命令来获取CPU负载、内存使用情况、磁盘使用情况、网络连接数量、系统负荷以及重要服务的运行状态。你可以根据需要自行修改脚本中的命令和参数来实现特定的监控要求。