简单基础的linux运维脚本
服务在部署运行中,需要运维工作来提供服务保障和支持,运维工作主要包括系统性能监控、服务的启停发布以及日志和数据的清理备份等,有复杂有简单,现就最为基础简单的一些脚本进行整理和归纳
服务定时重启
tomcat服务重启脚本大致如下
#!/bin/bash
jbserver_ui_bin_path=/home/serveradm/Tomcat/bin # 设定tomcat服务的目录
cd ${jbserver_ui_bin_path}
sh shutdown.sh
echo -n "Wait 5 seconds "
seconds=1
while [ $seconds -le 5 ]
do
echo -n "."
sleep 1
seconds=`expr $seconds + 1`
done
echo "Start Tomcat Server ..."
sh startup.sh
如有需要,还可以设定一些启动参数后再执行startup.sh,例如
export JAVA_OPTS=" -XX:PermSize=256m -XX:MaxPermSize=512 -Xms512m -Xmx512m -Xloggc:gc.log -Dprofile=prod -Djava.security.egd=file:/dev/./urandom"
脚本编辑完成后,还需要给脚本赋予执行权限
# chmod 755 tomcat_restart.sh
最后通过crontab设定服务器定时任务,定时执行脚本,我们将这个服务重启的脚本设置为每周一早上5点重启,设定方式如下:
# crontab -e
进入定时任务编辑器
使用vi编辑的方式,在文件最后添加如下内容:
0 5 * * 1 sh /home/serveradm/shells/jqbbserver_restart.sh
然后保存退出,即可成功设定
crontab的日志通常在如下位置可以查看:
/var/log/cron
日志定时切分
我们以tomcat的catalina.out日志为例来说明日志切分的脚本
脚本大致内容如下:
#!/bin/bash
server_log_path=/home/serveradm/Tomcat/logs
server_dist_log_path=/home/serveradm/Tomcat/logs/backups
d=`date +%Y-%m-%d`
d50=`date -d'50 day ago' +%Y-%m-%d`
cd ${server_log_path} && cp catalina.out ${server_dist_log_path}/catalina.out.$d.log
echo > catalina.out
rm -rf ${server_dist_log_path}/catalina.out.${d50}.log #删除50天以前的日志
注意:脚本中的目录都需要正确,尤其是目标目录,需要提前新建并且有写入权限
脚本编辑完成保存后,还需要给脚本赋予执行权限
# chmod 755 tomcat_restart.sh
最后通过crontab设定服务器定时任务,定时执行脚本,日志我们设定为每日23:59分进行切分,设定方式如下:
# crontab -e
进入定时任务编辑器
使用vi编辑的方式,在文件最后添加如下内容:
59 23 * * * sh /home/serveradm/shells/tomcat_logcut.sh
然后保存退出,即可成功设定