linux系统维护简单脚本
来源:互联网 发布:专业屏幕录制软件 编辑:程序博客网 时间:2024/05/17 06:18
1.报告当前系统“/boot”目录所占用的空间大小,并列出其中内核文件的属性信息。
#!/bin/bash
#To show usage of /boot directory and mode of kernel file.
echo "Useage of /boot: "
du -sh /boot
echo "The mode of kernel file: "
ls -lh /boot/vmlinuz-*
2.数据库目录位于 “/var/lib/mysql” , 为了数据安全,每隔三天做一次完整备份,备份前要统目录占用的总空间大小,并将备份日期·目录大小信息保存到临时文件 “/tmp/dbinfo.txt” 中,然后用tar命令将dbinfo.txt文件随数据库目录一起备份到 “/opt/dbbak/” 目录中,备份文件中要求体现当日的日期。
mkdir /opt/dbbak
vi /opt/dbbak.sh
#!/bin/bash
DAY=`date +%Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo "Date: $DAY" >> /tmp/dbinfo.txta
echo "Date Size: $Size" >> /tmp/dbinfo.txt
tar zcvf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
rm -rf /tmp/dbinfo.txt
3.检查 “/var/log/messages” 文件是否存在,若存在则统计文件内容的行数,否则不做任何操作。
#!/bin/bsh
LogFile="/var/log/messages"
if [ -f $LogFile ]; then
wc -l $LogFile
fi
4.统计当前登录到系统中的用户数量,并判断是否超过三个,若是则显示实际数量并给出警告,否则列出登录的用户账号名称及所在终端。
#!/bin/bash
UsersNum=`who | wc -l`
if [ $UsesNum -gt 3 ]; then
echo "Alert, too many login users (Total: $UsersNum)."
else
echo "Login users: "
who | awk '{print $1,$2}'
fi
5.检查 portmap 进程是否已经存在,若存在则输出 “portmap service is running.” , 否则检查是否存在 “/etc/rc.d/init.d/portmap” 可执行脚本,存在则启动 portmap 服务,否则提示 “no portmap script file.”
#!/bin/bash
pgrep portmap & > /dev/null
if [ $? -eq 0 ]; then
echo "portmap service is running."
elif [ -x "/etc/rc.d/init.d/portmap" ] ; then
service portmap start
else
echo "no portmap script file."
fi
6.每隔5分钟检测一次mysqld服务进程的运行状态,若发现 mysqld 进程已经终止,则在 “/var/log/messages” 文件中追加写入日志信息(包括当前时间),并重启 mysqld服务,否则不做任何操作。
#/bin/bash
service mysqld status &> /dev/null
if [ $? -ne 0 ] ; then
echo "At time: 'data': mysql service is down. " >> /var/log/messages
service mysqld restart
7.计算 “/etc” 目录中所有 "*.conf" 形式的配置文件所占用的总空间大小。
#!/bin/bash
SizeNums=$( ls -l $(find /etc -type f -a -name *.conf) | awk '{print $5}')
Total=0
for i in $SizeNums
do
Total = `expr $Total + $i`
done
echo "Total size of conf files: $Total bytes."
注意事项:要加权限才能用./来执行脚本
条件测试:
-d:测试是否为目录
-e:测试目录或文件是否存在
-f:测试是否为文件
-r:测试当前用户是否有权限读取
-w:测试当前用户是否有权限写入
-x:测试当前用户是否有权限执行
-L:测试是否为符号连接文件
通过预定义变量 “$?” 可以获得测试命令的返回值状态值,返回0表示条件成立,非0条件不成立,如 if [ $? -ne 0 ]
,这个是不成立的。
#!/bin/bash
#To show usage of /boot directory and mode of kernel file.
echo "Useage of /boot: "
du -sh /boot
echo "The mode of kernel file: "
ls -lh /boot/vmlinuz-*
2.数据库目录位于 “/var/lib/mysql” , 为了数据安全,每隔三天做一次完整备份,备份前要统目录占用的总空间大小,并将备份日期·目录大小信息保存到临时文件 “/tmp/dbinfo.txt” 中,然后用tar命令将dbinfo.txt文件随数据库目录一起备份到 “/opt/dbbak/” 目录中,备份文件中要求体现当日的日期。
mkdir /opt/dbbak
vi /opt/dbbak.sh
#!/bin/bash
DAY=`date +%Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo "Date: $DAY" >> /tmp/dbinfo.txta
echo "Date Size: $Size" >> /tmp/dbinfo.txt
tar zcvf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
rm -rf /tmp/dbinfo.txt
3.检查 “/var/log/messages” 文件是否存在,若存在则统计文件内容的行数,否则不做任何操作。
#!/bin/bsh
LogFile="/var/log/messages"
if [ -f $LogFile ]; then
wc -l $LogFile
fi
4.统计当前登录到系统中的用户数量,并判断是否超过三个,若是则显示实际数量并给出警告,否则列出登录的用户账号名称及所在终端。
#!/bin/bash
UsersNum=`who | wc -l`
if [ $UsesNum -gt 3 ]; then
echo "Alert, too many login users (Total: $UsersNum)."
else
echo "Login users: "
who | awk '{print $1,$2}'
fi
5.检查 portmap 进程是否已经存在,若存在则输出 “portmap service is running.” , 否则检查是否存在 “/etc/rc.d/init.d/portmap” 可执行脚本,存在则启动 portmap 服务,否则提示 “no portmap script file.”
#!/bin/bash
pgrep portmap & > /dev/null
if [ $? -eq 0 ]; then
echo "portmap service is running."
elif [ -x "/etc/rc.d/init.d/portmap" ] ; then
service portmap start
else
echo "no portmap script file."
fi
6.每隔5分钟检测一次mysqld服务进程的运行状态,若发现 mysqld 进程已经终止,则在 “/var/log/messages” 文件中追加写入日志信息(包括当前时间),并重启 mysqld服务,否则不做任何操作。
#/bin/bash
service mysqld status &> /dev/null
if [ $? -ne 0 ] ; then
echo "At time: 'data': mysql service is down. " >> /var/log/messages
service mysqld restart
fi
根据6写的升级版检测mysqld运行状态script
#!/bin/bash
#检测mysql的运行状态,并将down掉的时间记录,每隔3秒循环检查一次
while :
do
DAY=`date`
service mysqld status &> /dev/null
if [ $? -ne 0 ];then
echo "Date: $DAY" >> /var/log/messges
echo "mysqld is down" >> /var/log/messges
/etc/init.d/mysqld restart
fi
sleep 3
done
7.计算 “/etc” 目录中所有 "*.conf" 形式的配置文件所占用的总空间大小。
#!/bin/bash
SizeNums=$( ls -l $(find /etc -type f -a -name *.conf) | awk '{print $5}')
Total=0
for i in $SizeNums
do
Total = `expr $Total + $i`
done
echo "Total size of conf files: $Total bytes."
注意事项:要加权限才能用./来执行脚本
条件测试:
-d:测试是否为目录
-e:测试目录或文件是否存在
-f:测试是否为文件
-r:测试当前用户是否有权限读取
-w:测试当前用户是否有权限写入
-x:测试当前用户是否有权限执行
-L:测试是否为符号连接文件
通过预定义变量 “$?” 可以获得测试命令的返回值状态值,返回0表示条件成立,非0条件不成立,如 if [ $? -ne 0 ]
,这个是不成立的。
- linux系统维护简单脚本
- 使用 Shell 脚本自动化 Linux 系统维护任务
- Linux简明系统维护手册
- Linux系统维护手册1
- Linux简明系统维护手册
- Linux简明系统维护手册
- Linux简明系统维护手册
- Linux简明系统维护手册
- Linux系统维护常用工具sysstat
- Linux系统维护管理命令
- 系统维护
- Linux简明系统维护手册-1
- linux系统维护常用操作命令
- 使用shell脚本辅助系统维护RHCE-Day12
- linux简单自动化脚本
- linux简单脚本2
- Linux 简单脚本程序
- linux -- linux系统维护关于ssh安全篇
- Java NIO教程总结
- Ubuntu12.04 LTS 下为Firefox安装Adobe Flash Player
- 【时间大小】 比较 java
- PhoneGap学习笔记四:PhoneGap底层原理(下)
- libusb的安装版本
- linux系统维护简单脚本
- 聚类、文本分类、倾向性分析
- Java异常处理机制
- Oracle的KILL锁表及清除session方法
- Hive常用语句
- android NDK 交叉编译C库
- .Net 动态调用WebService
- How to compile openjdk 7 in RHEL5
- 图片轮换的按钮如何通过像素定位