系统维护常用脚本
2015-06-24 23:00
387 查看
在linux系统维护过程中,经常需要解决各种各样的需求,最简单的方式还是用linux系统本身的shell,最简单有效
这个网站很好推荐给大家点这里
1.释放内存:
2,列数据转为行
3,获取进程运行的时间
4,获取进程运行的时间并杀死过期进程,以免占用内存及swap空间
这个网站很好推荐给大家点这里
1.释放内存:
cat monitor_mem.sh #!/bin/bash used=`free -m | awk 'NR==2' | awk '{print $3}'` free=`free -m | awk 'NR==2' | awk '{print $4}'` echo " date:`date +%Y%m%d%H%M` ===========================" > /var/log/mem.log date >> /var/log/mem.log echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log if [ $free -le 4000 ] ; then sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches echo "OK" >> /var/log/mem.log mail -s "`hostname` mem monitor info" 15001027302@139.com < /var/log/mem.log else echo "Not required" >> /var/log/mem.log fi exit
2,列数据转为行
cat test.txt 192.168.5.44 192.168.5.45 192.168.5.46 192.168.5.47 192.168.5.51 192.168.5.52 192.168.5.54 192.168.5.55 sed ':a;$!N;s/\n/,/;ta' test.txt 192.168.5.44,192.168.5.45,192.168.5.46,192.168.5.47,192.168.5.51,192.168.5.52,192.168.5.54,192.168.5.55
3,获取进程运行的时间
cat ./get_process_time.sh #!/bin/bash function show_elapsed_time() { user_hz=$(getconf CLK_TCK) #mostly it's 100 on x86/x86_64 pid=$1 jiffies=$(cat /proc/$pid/stat | cut -d" " -f22) sys_uptime=$(cat /proc/uptime | cut -d" " -f1) last_time=$(( ${sys_uptime%.*} - $jiffies/$user_hz )) echo "the process $pid lasts for $last_time seconds." } if [ $# -ge 1 ];then for pid in $@ do show_elapsed_time $pid done fi while read pid do show_elapsed_time $pid done 执行示例: ./get_process_time.sh 4260
4,获取进程运行的时间并杀死过期进程,以免占用内存及swap空间
cat ./get_process_time.sh #!/bin/bash #set -x function show_elapsed_time() { user_hz=$(getconf CLK_TCK) #mostly it's 100 on x86/x86_64 pid=$1 oneday=86400 jiffies=$(cat /proc/$pid/stat | cut -d" " -f22) sys_uptime=$(cat /proc/uptime | cut -d" " -f1) last_time=$(( ${sys_uptime%.*} - $jiffies/$user_hz )) if [ $last_time -gt $oneday ];then echo "the process $pid lasts for $last_time seconds." kill -9 $pid else echo "no exits gt $oneday process" fi } if [ $# -ge 1 ];then for pid in $@ do show_elapsed_time $pid done fi 执行示例: ./get_process_time.sh `ps aux | grep java| grep -v grep |awk '{print $2}'|sed ':a;$!N;s/\n/ /;ta'`
相关文章推荐
- hadoop2基本概念
- 手斧Linux – 从LFS到Funtoo (41)
- 手斧Linux – 从LFS到Funtoo (40)
- 手斧Linux – 从LFS到Funtoo (39)
- 手斧Linux – 从LFS到Funtoo (38)
- 将linux默认python升级到2.7.4版本
- 手斧Linux – 从LFS到Funtoo (37)
- 部署维护docker环境
- 手斧Linux – 从LFS到Funtoo (36)
- PropertySource的配置
- Archlinux 修改/etc/profile文件使得ls等命令结果显示颜色
- Server at localhost was unable to start within 45 seconds
- 'module' object has no attribute 'getppid' odoo openerp debug报错
- linux中的hosts.allow和hosts.deny文件
- Linux ubuntu下svn的命令使用指南
- 谈谈对AOP的认识二——AOP概念术语理解
- log4j.properties配置生成log文件路径问题
- Archlinux设置静态固定IP
- Linux 下wget 的参数描述
- 使用 adb shell 安装APK