linux常用脚本小合集V0.1(一键获取硬件信息、守护程序、定期备份mysql等)
因为自身工作原因,需对一些服务端日常维护。期间陆陆续续写了一些脚本用于方便工作。特此分享给吾友,脚本都是自己用的,功能比较简单,但是确实能大大减少日常工作量。
所有内容均在centos7.6下经过测试可用,部分脚本在ubuntu下不可用,需自行修改。
全部脚本下载链接:
链接: https://pan.baidu.com/s/1PegoQtzyVbhLLlTBNMBGKg 提取码: 3bdj
1、一键获取服务器硬件信息:
直接sh脚本执行,脚本内容如下:#该脚本用于输出centos系统服务器硬件信息,ubuntu中部分命令显示会有问题#操作系统
echo "操作系统: $(cat /etc/redhat-release)"
#cpu型号
echo "CPU信息: $(dmidecode -s processor-version |head -n 1)"
#cpu个数
echo "CPU个数: $(cat /proc/cpuinfo |grep "physical id" |sort |uniq|wc -l)"
#cpu核心数
echo "CPU核心数: $(cat /proc/cpuinfo |grep "cores"|uniq)"
#内存数量
echo "内存情况分别为: $(dmidecode -t memory|grep Size|grep -v "No Module Installed" )"
#内存频率
echo "内存频率为: $(dmidecode|grep -A16 "Memory Device"|grep "Speed")"
#内存总数
echo "内存总数: $(free -mh|grep Mem|awk '{print $2}')"
#硬盘信息
echo "硬盘大小: $(lsblk|grep -v SIZE|grep -v ─|awk '{print $4}')"
#网卡信息,还在调试中。期望显示网口激活状态、IP、聚合状态、mac地址。
运行结果:
2、任意程序自动守护(以tomcat为例):
原理是检测某程序是否存活,如访问本机webservice页面、telnet端口等,不存活则重启服务并写入日志,存活则写入日志;
脚本写完后再利用crontab定期执行。
脚本内容如下:
source /etc/profile
#此处用curl http的方式测试程序是否存活,也可以改成简单测试端口是否存活
result=($(curl -m 15 -o /dev/null -w %{http_code} http://123.123.123.123:80/index.htm))
if [ $result != 200 ];
then
echo "$(date +%Y-%m-%d\ %H:%M:$S) ----web服务异常----">>/home/tomcatRun.log
echo "result =" $result
systemctl stop tomcat
sleep 10
systemctl start tomcat
echo "-----web服务已启动-----"
else echo "$(date +%Y-%m-%d\ %H:%M:$S)web服务正常" >>/home/tomcatRun.log
echo "result =" $result
exit
fi
用“crontab -e”加入计划调度,每5分钟执行一次:
*/5 * * * * sh /home/protectTomcat.sh
3、定时备份mysql
脚本如下:
source /etc/profile
date=$(date +%Y_%m_%d\_%H_%M_%S)
mysqldump -u用户名 -p密码, 库名 表名 > /home/"$date".sql
用“crontab -e”加入计划调度,每天1点30分执行一次:
30 1 * * *sh /home/mysql_backup.sh
4、定期删除日志
直接用“crontab -e”加入计划调度,每天1点20分执行一次,删除指定目录下3天前的日志:
20 1 * * *find /usr/local/tomcat/logs/ -mtime +2 | xargs rm -rf
如果需要删的日志比较多的话,可以把命令写到脚本里,定期执行脚本,这样crontab会比较清爽。 这内存获取有点粗啊,把不必要的信息过滤下啊,尽量使用全系linux都带的命令再获取啊,以保证全平台通用啊。
页:
[1]