Centos救援模式挂载lvm的方法
进入到系统救援模式的命令行界面,这时你可以遇到一个问题,就是 linux 系统自动无法挂载到 /mnt/sysroot/上面。
you don't have any Linux partitions,
Press return to get a shell.
Thesystem will reboot automatically when you exit from the shell.
手动挂载也会提示出错。
mount /dev/sdb1 /mnt/sysimage/
mount unknown filesystem type ‘lvm2_member’
查看当前逻辑卷。
lvdisplay | less
查看VG Name(激活逻辑卷用)和LV Name(挂载用)后面对应的值,我这里是vg_troubleshoot和/dev/vg_troubleshoot/lv_root。 激活逻辑卷(后面这个路径可能不存在,直接运行即可):
vgchange -ay /dev/vg_troubleshoot
重新挂载。
mount /dev/vg_troubleshoot/lv_root /mnt/sysimage/
挂载成功。
服务器巡检及邮件告警脚本
系统资源占用情况获取脚本为python开发:
import psutil
import sys
import os
import requests
class UtilClass:
def __init__(self, argv=None):
self.args = argv
def prt(self):
try:
rec = self.args[1]
except IndexError:
rec = 'help'
if rec == 'cpu':
print(int (psutil.cpu_percent()))
elif rec == 'mem':
print(int(psutil.virtual_memory().percent))
elif rec == 'swap':
print(int(100 - psutil.swap_memory().percent))
elif rec == 'gen':
print (int(psutil.disk_usage('/').percent))
elif rec == 'opt':
print (int(psutil.disk_usage('/opt').percent))
elif rec == 'tomcat':
tomcat=os.popen("ps aux | grep -w 'Seeyon' | grep -v 'grep' | wc -l").read().replace('\n', '')
print (tomcat)
elif rec == 'oracle':
...
python获取os.system()的执行结果
不能使用os.system()执行,需要用os.popen().
import os
content=os.popen('help').read()
print (content)
docker版zabbix请求短信接口脚本
docker版zabbix的系统是一个类似于安卓的操作系统,导致缺少了curl,且请求内容有中文会乱码。 解决办法:用wget请求短信web接口,并且在脚本中将中文转换成urlencode,再请求接口。 脚本如下:
var=`echo $3 |tr -d '\n' |od -An -tx1|tr ' ' % | tr -d '\n'`
wget 172.17.0.1:8080/$1/$2/$var -P /tmp/zabbbix.tmp
达梦集群重启顺序
进入达梦目录:
cd /opt/dmdbms/bin
停止集群 关闭确认监视器:
./DmMonitorServiceDMMONITOR stop
关闭主库守护进程:
./DmWatcherServiceV3X stop
关闭主库数据库服务:
./DmServiceV3X stop
启动集群 启动主库数据库服务:
./DmServiceV3X start
启动主库守护进程:
./DmWatcherServiceV3X start
启动确认监视器:
./DmMonitorServiceDMMONITOR start
启动非确认监视器查看状态:
./dmmonitor /opt/dmdbms/data/DAMENG/dmmonitor_m.ini
达梦dts健康状态检查
该脚本用于zabbix监控达梦dts迁移进程的健康状态,首先查看脚本是否有报错,如果没有就检查日志时间戳,指定时间内有更新视为正常。
format_date=$(date +%s -r /opt/dmdbms/log/dmdts.log)
now_date=$(date +%s)
result=$(tail -n 20 /opt/dmdbms/log/dmdts.log)
result2=$(tail -n 1 /opt/bgtG6NMainSql/runsql_main.log)
if [[ ${result} =~ '失败' ]];then
echo 'EXECError'
elif [[ ${result2} =~ 'at' ]];then
echo 'SQLError'
else
if [ $(($now_date-$format_date)) -gt 600 ];then
echo 'RunError'
else
echo 'Normal'
fi
fi
推荐python3运行该脚本。