提交 a9bdd856 作者: bo.sun

master

上级 c6c8f5d4
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import datetime
import subprocess
import shlex
logpath = "/opt/collect/"
def runcmd(cmd, shell=False, encoding='utf-8'):
args = cmd if shell else shlex.split(cmd)
r = subprocess.run(args, shell=shell, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding=encoding)
return r.stdout, r.returncode
def logs(log: str):
logfile = "mdstat.log"
with open(logpath + logfile, "a") as f:
t = str(datetime.datetime.now()).split(".")[0]
line = t + " " + log + "\n"
print(line, end="")
f.write(line)
def check_part():
cmd = "fdisk -l | grep -c RAID"
ret = int(runcmd(cmd, shell=True)[0])
if ret == 4:
return 1
else:
return 0
def md_stat():
cmd = "cat /proc/mdstat | grep md"
return runcmd(cmd, shell=True)
def fix_md(name, stat=None):
log = 0
if "inactive" in stat:
cmd1 = "mdadm -S /dev/{}".format(name)
cmd2 = "mdadm -Af /dev/md5 /dev/sd[a-d]1"
runcmd(cmd1)
ret = runcmd(cmd2, shell=True)
if name == "md127":
runcmd("mdadm -Ds > /rootfs/etc/mdadm.conf", shell=True)
log = "{}: inactive, repair: {} {}".format(name, ret[1], ret[0])
elif "auto-read-only" in stat:
cmd1 = "mdadm --readwrite /dev/{}".format(name)
ret = runcmd(cmd1)
log = "{}: auto-read-only, repair: {} {}".format(name, ret[1], ret[0])
if name == "md127":
runcmd("mdadm -S /dev/md127")
ret = runcmd("mdadm -Af /dev/md5 /dev/sd[a-d]1", shell=True)
runcmd("mdadm -Ds > /rootfs/etc/mdadm.conf", shell=True)
log = log + "& md127 rename: {} {}".format(ret[1], ret[0])
elif name == "lost":
ret = runcmd("mdadm -Af /dev/md5 /dev/sd[a-d]1", shell=True)
runcmd("mdadm -Ds > /rootfs/etc/mdadm.conf", shell=True)
log = "md lost, repair: {} {}".format(ret[1], ret[0])
if log:
logs(log)
if __name__ == '__main__':
if check_part():
md = md_stat()
if not int(md[1]):
dev = md[0].split(":")[0].replace(" ", "")
fix_md(dev, md[0])
else:
fix_md("lost")
#! /bin/bash
ipset flush cnip
\ No newline at end of file
#!/bin/bash
SENSS=1000.0
function cpu_temp_get() {
TempSorceCpu0=`cat /sys/class/thermal/thermal_zone0/temp`
TempSorceCpu1=`cat /sys/class/thermal/thermal_zone1/temp`
TempCpu0=`awk -v T=$TempSorceCpu0 -v SENS=$SENSS 'BEGIN{printf("%.2f", T/SENS)}'`
TempCpu1=`awk -v T=$TempSorceCpu1 -v SENS=$SENSS 'BEGIN{printf("%.2f", T/SENS)}'`
#echo "TempCpu: ${TempCpu0} ${TempCpu1}"
eval $1=$TempCpu0
eval $2=$TempCpu1
}
#while [ true ]
#do
#cpu_temp_get TempCpu0 TempCpu1
#echo "TempCpu: ${TempCpu0} ${TempCpu1}"
#sleep 0.5
#done
#!/bin/bash
function sata_err_log_get() {
smartctl -l error $1 |tail -n +6
}
#sata_err_log_get $1
#!/bin/bash
function sata_reg_val_get() {
smartctl -A $1 |tail -n +7
}
#sata_reg_val_get $1
#!/bin/bash
function sata_health_get() {
echo `smartctl -H $1 |grep result |awk -F ": " '{print $2}'`
}
#ST=`sata_health_get $1`
#echo "SataHealthSt:${ST}"
#!/bin/bash
temp_sensitivity=326.8
accel_sensitivity=2048.0
gyro_sensitivity=16.4
deviceid=`i2cget -f -y 4 0x68 0x75 b`
#echo "DeviceId:${deviceid}"
function icm20602_init() {
i2cset -f -y 4 0x68 0x6b 0x80
sleep 0.01
i2cset -f -y 4 0x68 0x6b 0x1
i2cset -f -y 4 0x68 0x6c 0x3F
i2cset -f -y 4 0x68 0x6a 0x0
i2cset -f -y 4 0x68 0x1a 0x5
i2cset -f -y 4 0x68 0x1b 0x18
i2cset -f -y 4 0x68 0x1c 0x18
i2cset -f -y 4 0x68 0x1d 0x03
i2cset -f -y 4 0x68 0x19 0x0
i2cset -f -y 4 0x68 0x6c 0x0
}
function temp_get() {
TempH=`i2cget -f -y 4 0x68 0x41 b`
TempL=`i2cget -f -y 4 0x68 0x42 b`
TempSorce=`awk -v H=$TempH -v L=$TempL 'BEGIN{printf("%d", lshift(H,8) + L)}'`
if [ $TempSorce -gt 32768 ]; then
let TempSorce=TempSorce-65536
fi
Temp=`awk -v T=$TempSorce -v SENS=$temp_sensitivity 'BEGIN{printf("%.2f", T/SENS + 25)}'`
#echo "Temp: ${TempH} ${TempL} ${Temp}"
eval $1=$Temp
}
function accel_get() {
AccelX_H=`i2cget -f -y 4 0x68 0x3B b`
AccelX_L=`i2cget -f -y 4 0x68 0x3C b`
AccelXSorce=`awk -v H=$AccelX_H -v L=$AccelX_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
AccelY_H=`i2cget -f -y 4 0x68 0x3D b`
AccelY_L=`i2cget -f -y 4 0x68 0x3E b`
AccelYSorce=`awk -v H=$AccelY_H -v L=$AccelY_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
AccelZ_H=`i2cget -f -y 4 0x68 0x3F b`
AccelZ_L=`i2cget -f -y 4 0x68 0x40 b`
AccelZSorce=`awk -v H=$AccelZ_H -v L=$AccelZ_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
if [ $AccelXSorce -gt 32768 ]; then
let AccelXSorce=AccelXSorce-65536
fi
if [ $AccelYSorce -gt 32768 ]; then
let AccelYSorce=AccelYSorce-65536
fi
if [ $AccelZSorce -gt 32768 ]; then
let AccelZSorce=AccelZSorce-65536
fi
AccelX=`awk -v A=$AccelXSorce -v SENS=$accel_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
AccelY=`awk -v A=$AccelYSorce -v SENS=$accel_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
AccelZ=`awk -v A=$AccelZSorce -v SENS=$accel_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
#echo "AccelX: ${AccelX_H} ${AccelX_L} ${AccelX}"
#echo "AccelY: ${AccelY_H} ${AccelY_L} ${AccelY}"
#echo "AccelZ: ${AccelZ_H} ${AccelZ_L} ${AccelZ}"
eval $1=$AccelX
eval $2=$AccelY
eval $3=$AccelZ
}
function gyro_get() {
GyroX_H=`i2cget -f -y 4 0x68 0x43 b`
GyroX_L=`i2cget -f -y 4 0x68 0x44 b`
GyroXSorce=`awk -v H=$GyroX_H -v L=$GyroX_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
GyroY_H=`i2cget -f -y 4 0x68 0x45 b`
GyroY_L=`i2cget -f -y 4 0x68 0x46 b`
GyroYSorce=`awk -v H=$GyroY_H -v L=$GyroY_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
GyroZ_H=`i2cget -f -y 4 0x68 0x47 b`
GyroZ_L=`i2cget -f -y 4 0x68 0x48 b`
GyroZSorce=`awk -v H=$GyroZ_H -v L=$GyroZ_L 'BEGIN{printf("%d", lshift(H,8) + L)}'`
if [ $GyroXSorce -gt 32768 ]; then
let GyroXSorce=GyroXSorce-65536
fi
if [ $GyroYSorce -gt 32768 ]; then
let GyroYSorce=GyroYSorce-65536
fi
if [ $GyroZSorce -gt 32768 ]; then
let GyroZSorce=GyroZSorce-65536
fi
GyroX=`awk -v A=$GyroXSorce -v SENS=$gyro_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
GyroY=`awk -v A=$GyroYSorce -v SENS=$gyro_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
GyroZ=`awk -v A=$GyroZSorce -v SENS=$gyro_sensitivity 'BEGIN{printf("%.2f", A/SENS)}'`
#echo "GyroX: ${GyroX_H} ${GyroX_L} ${GyroX}"
#echo "GyroY: ${GyroY_H} ${GyroY_L} ${GyroY}"
#echo "GyroZ: ${GyroZ_H} ${GyroZ_L} ${GyroZ}"
eval $1=$GyroX
eval $2=$GyroY
eval $3=$GyroZ
}
#icm20602_init
#temp_get Temp
#accel_get AccelX AccelY AccelZ
#gyro_get GyroX GyroY GyroZ
#echo "Temp: ${Temp}"
#echo "Accel: ${AccelX} ${AccelY} ${AccelZ}"
#echo "Gyro: ${GyroX} ${GyroY} ${GyroZ}"
#for (( i=0;i<100;i++))
#while [ true ]
#do
#temp_get Temp
#accel_get AccelX AccelY AccelZ
#gyro_get GyroX GyroY GyroZ
#echo "Temp: ${Temp}"
#echo "Accel: ${AccelX} ${AccelY} ${AccelZ}"
#echo "Gyro: ${GyroX} ${GyroY} ${GyroZ}"
#sleep 0.5
#done
#! /bin/bash
echo $1
ipset add cnip $1
\ No newline at end of file
#! /bin/bash
iptables -R INPUT 3 -p tcp --dport 5001 -m set --match-set cnip src -j ACCEPT
\ No newline at end of file
#! /bin/bash
iptables -F
ipset destroy cnip
ipset -N cnip hash:net
iptables -A INPUT -p tcp --dport 5001 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 5001 -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp --dport 5001 -m set --match-set cnip src -j ACCEPT
iptables -A INPUT -p tcp --dport 5001 -j DROP
#!/bin/bash
nohup /opt/tool/saturn-stress.sh 1>/dev/null 2>&1 &
echo "TEST started"
#!/bin/bash
FSV=23.9883
FSR=40
Rsense=10
let FSC=FSR/Rsense
function pvi_init() {
cssc=`i2cget -y 8 0x4c 0x51 b`
#echo "cssc51:${cssc}"
i2cset -y 8 0x4c 0x51 0x02 b
cssc=`i2cget -y 8 0x4c 0x51 b`
#echo "cssc51:${cssc}"
}
function pvi_temp_get() {
temp0=`i2cget -y 8 0x4c 0x0 b`
temp=`awk -n -v T=$temp0 'BEGIN{printf("%d", T)}'`
eval $1=$temp
}
function pvi_current_get() {
VsenseH=`i2cget -y 8 0x4c 0x54 b`
VsenseL=`i2cget -y 8 0x4c 0x55 b`
Vsense=`awk -n -v H=$VsenseH -v L=$VsenseL 'BEGIN{printf("%d", H * 16 + rshift(L,4))}'`
#echo "Vsense: ${VsenseH} ${VsenseL} ${Vsense}"
Isource=`awk -v V=$Vsense -v FSC=$FSC 'BEGIN{printf("%.2f", FSC * V / 2047)}'`
#echo "Isource ${Isource}A"
eval $1=$Isource
}
function pvi_volt_get() {
VsourceH=`i2cget -y 8 0x4c 0x58 b`
VsourceL=`i2cget -y 8 0x4c 0x59 b`
Vsource=`awk -n -v H=$VsourceH -v L=$VsourceL 'BEGIN{printf("%d", H * 16 + rshift(L,4))}'`
#echo "Vsource: ${VsourceH} ${VsourceL} ${Vsource}"
Vdd=`awk -v V=$Vsource -v FSV=$FSV 'BEGIN{printf("%.2f", FSV * V / 4094)}'`
#echo "Vdd ${Vdd}V"
eval $1=$Vdd
}
function pvi_pratio_get() {
PratioH=`i2cget -y 8 0x4c 0x5b b`
PratioL=`i2cget -y 8 0x4c 0x5c b`
Pratio=`awk -n -v H=$PratioH -v L=$PratioL 'BEGIN{printf("%d", H * 256 + L)}'`
#echo "Pratio: ${PratioH} ${PratioL} ${Pratio}"
Psource=`awk -v P=$Pratio -v FSV=$FSV -v FSC=$FSC 'BEGIN{printf("%.2f", FSV * FSC * P / 65536)}'`
#echo "Psource ${Psource}W"
eval $1=$Psource
}
#pvi_init
#pvi_temp_get temp
#pvi_volt_get Vdd
#pvi_pratio_get Psource
#echo *******************
#echo -e "I: ${Isource} V: ${Vdd} P: ${Psource} T: ${temp}\n"
#echo *******************
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f "/etc/systemd/network/10-enp3s0f0.network" ];then
echo "file not found!"
else
sed -i "s#Gateway.*#Gateway=${1}#" /etc/systemd/network/10-enp3s0f0.network
fi
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f "/etc/systemd/network/21-eth1.network" ];then
echo "file not found!"
else
sed -i "s#Gateway.*#Gateway=${1}#" /etc/systemd/network/21-eth1.network
fi
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f "/etc/systemd/network/20-eth0.network" ];then
echo "file not found"
else
sed -i "s#Gateway.*#Gateway=${1}#" /etc/systemd/network/20-eth0.network
fi
#!/bin/bash
source /opt/tool/pvi_test.sh
source /opt/tool/icm20602.sh
source /opt/tool/get-cpu-temp.sh
source /opt/tool/get-sata-state.sh
PVI_DEFAULT_I=2.06
PVI_DEFAULT_V=12.00
PVI_DEFAULT_P=27.00
PVI_I_THRESHOLD_VAL=1
PVI_V_THRESHOLD_VAL=1
PVI_P_THRESHOLD_VAL=3
PVI_T_THRESHOLD_VAL=2f
ICM_T_THRESHOLD_VAL=55.00
ICM_ACCEL_X_THRESHOLD_VAL=4.00
ICM_ACCEL_Y_THRESHOLD_VAL=4.00
ICM_ACCEL_Z_THRESHOLD_VAL=4.00
ICM_GYRO_X_THRESHOLD_VAL=100.00
ICM_GYRO_Y_THRESHOLD_VAL=100.00
ICM_GYRO_Z_THRESHOLD_VAL=100.00
T_CPU0_VAL=50.00
T_CPU1_VAL=50.00
SATA_ST="PASSED"
pvi_init
icm20602_init
FILE="/opt/storage/log/alarm.log"
#function get_file_size() {
#echo `ls -l ${FILE} | awk '{ print $5 }'`
#}
function pvi_info_handle() {
pvi_temp_get pviTemp
pvi_current_get Isource
pvi_volt_get Vdd
pvi_pratio_get Psource
current_time=$(date "+%Y-%m-%d %H:%M:%S")
Tret=`awk -v T=$pviTemp -v THR=$PVI_T_THRESHOLD_VAL 'BEGIN{
if(T > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Tret -eq 1 ] ; then
echo -e "${current_time}\tEMC1701_T: ${pviTemp}" >> $FILE
fi
Iret=`awk -v I=$Isource -v SENS=$PVI_DEFAULT_I -v THR=$PVI_I_THRESHOLD_VAL 'BEGIN{
Iabs=I - SENS
if(Iabs < 0) {
Iabs=-1*Iabs
}
if(Iabs > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Iret -eq 1 ] ; then
echo -e "${current_time}\tI: ${Isource}" >> $FILE
fi
PVI_DEFAULT_I=${Isource}
Vret=`awk -v V=$Vdd -v SENS=$PVI_DEFAULT_V -v THR=$PVI_V_THRESHOLD_VAL 'BEGIN{
Vabs=V - SENS
if(Vabs < 0) {
Vabs=-1*Vabs
}
if(Vabs > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Vret -eq 1 ] ; then
echo -e "${current_time}\tV: ${Vdd}" >> $FILE
fi
PVI_DEFAULT_V=${Vdd}
Pret=`awk -v P=$Psource -v SENS=$PVI_DEFAULT_P -v THR=$PVI_P_THRESHOLD_VAL 'BEGIN{
Pabs=P - SENS
if(Pabs < 0) {
Pabs=-1*Pabs
}
if(Pabs > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Pret -eq 1 ] ; then
echo -e "${current_time}\tP: ${Psource}" >> $FILE
fi
PVI_DEFAULT_P=${Psource}
}
function icm20602_info_handle() {
temp_get icmTemp
accel_get AccelX AccelY AccelZ
gyro_get GyroX GyroY GyroZ
current_time=$(date "+%Y-%m-%d %H:%M:%S")
Tret=`awk -v T=$icmTemp -v THR=$ICM_T_THRESHOLD_VAL 'BEGIN{
if(T > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Tret -eq 1 ] ; then
echo -e "${current_time}\tT: ${icmTemp}" >> $FILE
fi
AXret=`awk -v A=$AccelX -v THR=$ICM_ACCEL_X_THRESHOLD_VAL 'BEGIN{
if(A < 0) {
A=-1*A
}
if(A > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $AXret -eq 1 ] ; then
echo -e "${current_time}\tAccelX: ${AccelX}" >> $FILE
fi
AYret=`awk -v A=$AccelY -v THR=$ICM_ACCEL_Y_THRESHOLD_VAL 'BEGIN{
if(A < 0) {
A=-1*A
}
if(A > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $AYret -eq 1 ] ; then
echo -e "${current_time}\tAccelY: ${AccelY}" >> $FILE
fi
AZret=`awk -v A=$AccelZ -v THR=$ICM_ACCEL_Z_THRESHOLD_VAL 'BEGIN{
if(A < 0) {
A=-1*A
}
if(A > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $AZret -eq 1 ] ; then
echo -e "${current_time}\tAccelZ: ${AccelZ}" >> $FILE
fi
GXret=`awk -v G=$GyroX -v THR=$ICM_GYRO_X_THRESHOLD_VAL 'BEGIN{
if(G < 0) {
G=-1*G
}
if(G > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $GXret -eq 1 ] ; then
echo -e "${current_time}\tGyroX: ${GyroX}" >> $FILE
fi
GYret=`awk -v G=$GyroY -v THR=$ICM_GYRO_Y_THRESHOLD_VAL 'BEGIN{
if(G < 0) {
G=-1*G
}
if(G > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $GYret -eq 1 ] ; then
echo -e "${current_time}\tGyroY: ${GyroY}" >> $FILE
fi
GZret=`awk -v G=$GyroZ -v THR=$ICM_GYRO_Z_THRESHOLD_VAL 'BEGIN{
if(G < 0) {
G=-1*G
}
if(G > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $GZret -eq 1 ] ; then
echo -e "${current_time}\tGyroZ: ${GyroZ}" >> $FILE
fi
}
function cpu_tmp_info_handle() {
cpu_temp_get TempCpu0 TempCpu1
current_time=$(date "+%Y-%m-%d %H:%M:%S")
Tcpu0=`awk -v T=$TempCpu0 -v THR=$T_CPU0_VAL 'BEGIN{
if(T > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Tcpu0 -eq 1 ] ; then
echo -e "${current_time}\tTempCpu0: ${TempCpu0}" >> $FILE
fi
Tcpu1=`awk -v T=$TempCpu1 -v THR=$T_CPU1_VAL 'BEGIN{
if(T > THR) {
printf("%d", 1)
}
else{
printf("%d", 0)
}
}'`
if [ $Tcpu1 -eq 1 ] ; then
echo -e "${current_time}\tTempCpu1: ${TempCpu1}" >> $FILE
fi
}
function collect_info_handle() {
pvi_info_handle
icm20602_info_handle
cpu_tmp_info_handle
for arg in $*
do
#echo -e "${arg} collect information:" >> $FILE
ST=`sata_health_get ${arg}`
if [ ! "${ST}" = "${SATA_ST}" ] ; then
current_time=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "${current_time}\t${arg}\tSataHealthSt: ${ST}" >> $FILE
fi
done
}
SataName="/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde"
if [ $# -eq 1 ]; then
while [ true ]
do
collect_info_handle ${SataName}
sleep $1
done
else
echo "Usage:saturn-collect-alarm.sh times"
fi
#!/bin/bash
sde2=$(df |grep sde2|awk '{print $1}')
if [ ! ${sde2} ];then
echo "sde error"
exit
else
echo "sde success"
fi
work=/opt/collect/20-eth0.network
work1=/opt/collect/21-eth1.network
#ls -l /opt/collect/20-eth0.network >/dev/null 2>&1
#if [ $? -eq 0 ];then
if [ -f ${work} ];then
echo "fileexist success"
elif [ -L "/etc/systemd/network/20-eth0.network" ];then
echo "profile error"
exit
else
cp /etc/systemd/network/20-eth0.network /opt/collect/20-eth0.network
echo "profile success"
fi
#ls -l /opt/collect/21-eth1.network >/dev/null 2>&1
#if [ $? -eq 0 ];then
if [ -f ${work1} ];then
echo "fileexist success"
elif [ -L "/etc/systemd/network/20-eth0.network" ];then
echo "profile error"
exit
else
cp /etc/systemd/network/21-eth1.network /opt/collect/21-eth1.network
echo "profile success"
fi
#sde2=$(df |grep sde2|awk '{print $1}')
#
#if [ ! ${sde2} ];then
# echo "no"
#else
# echo "ok"
#
#fi
#
#
#ls -l /opt/collect/20-eth0.network >/dev/null 2>&1
#
#if [ $? -eq 0 ];then
# echo "文件已存在"
#else
# cp /etc/systemd/network/20-eth0.network /opt/collect/20-eth0.network
# echo "OK"
#fi
#
#
#ls -l /opt/collect/21-eth1.network >/dev/null 2>&1
#
#if [ $? -eq 0 ];then
# echo "文件已存在"
#else
# cp /etc/systemd/network/21-eth1.network /opt/collect/21-eth1.network
# echo "OK"
#fi
#!/bin/bash
echo YES|cryptsetup -v luksFormat -c aes-cbc-plain --key-file /opt/ucas-key /dev/sda1
echo YES|cryptsetup -v luksFormat -c aes-cbc-plain --key-file /opt/ucas-key /dev/sdb1
echo YES|cryptsetup -v luksFormat -c aes-cbc-plain --key-file /opt/ucas-key /dev/sdc1
echo YES|cryptsetup -v luksFormat -c aes-cbc-plain --key-file /opt/ucas-key /dev/sdd1
sleep 1
cryptsetup luksOpen --key-file /opt/ucas-key /dev/sda1 cda1
cryptsetup luksOpen --key-file /opt/ucas-key /dev/sdb1 cdb1
cryptsetup luksOpen --key-file /opt/ucas-key /dev/sdc1 cdc1
cryptsetup luksOpen --key-file /opt/ucas-key /dev/sdd1 cdd1
sleep 1
mkfs.ext4 /dev/mapper/cda1
mkfs.ext4 /dev/mapper/cdb1
mkfs.ext4 /dev/mapper/cdc1
mkfs.ext4 /dev/mapper/cdd1
sleep 1
mount /dev/mapper/cda1 /opt/storage/data1
mount /dev/mapper/cdb1 /opt/storage/data2
mount /dev/mapper/cdc1 /opt/storage/data3
mount /dev/mapper/cdd1 /opt/storage/data4
#!/bin/bash
source /opt/tool/pvi_test.sh
source /opt/tool/icm20602.sh
source /opt/tool/get-cpu-temp.sh
source /opt/tool/get-sata-reg-val.sh
source /opt/tool/get-sata-state.sh
source /opt/tool/get-sata-err-log.sh
pvi_init
icm20602_init
FILE="/opt/collect/collect.log"
#MAX Size=22G
FILE_MAX_SIZE=23622320128
function get_file_size() {
echo `ls -l ${FILE} | awk '{ print $5 }'`
}
function collect_info_save() {
pvi_temp_get pviTemp
pvi_current_get Isource
pvi_volt_get Vdd
pvi_pratio_get Psource
temp_get icmTemp
accel_get AccelX AccelY AccelZ
gyro_get GyroX GyroY GyroZ
cpu_temp_get TempCpu0 TempCpu1
echo -e "I: ${Isource} V: ${Vdd} P: ${Psource} T: ${pviTemp}\n" >> $FILE
echo -e "AccelX: ${AccelX}\tAccelY: ${AccelY}\tAccelZ: ${AccelZ}\tT: ${icmTemp}" >> $FILE
echo -e "GyroX : ${GyroX}\tGyroY : ${GyroY}\tGyroZ : ${GyroZ}\n" >> $FILE
echo -e "TempCpu0: ${TempCpu0}\tTempCpu1: ${TempCpu1}\n" >> $FILE
#argc=$#
#echo ${argc}
for arg in $*
do
echo -e "${arg} collect information:" >> $FILE
sata_reg_val_get ${arg} >> $FILE
ST=`sata_health_get ${arg}`
echo "SataHealthSt: ${ST}" >> $FILE
sata_err_log_get ${arg} >> $FILE
done
}
SataName="/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde"
if [ $# -eq 1 ]; then
while [ true ]
do
current_time=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "\n****************Collect Time: ${current_time}****************" >> $FILE
collect_info_save ${SataName}
Size=`get_file_size`
#echo ${Size}
if [ $Size -gt $FILE_MAX_SIZE ] ; then
echo > ${FILE}
# echo "clear"
fi
sleep $1
done
else
echo "Usage:saturn-cycle-collect.sh times"
fi
#!/bin/bash
len=9
result=$(i2cget -y -f 3 0x50 0x0 i)
ascii_chars=$(echo "$result" | xxd -r -p)
serial=$(echo "$ascii_chars" | cut -c 1-"$len")
echo "$serial"
#!/bin/bash
case "$1" in
-w)
if [ $# -ne 4 ]; then
echo "错误:需要提供4个参数,当前参数数量为 $#"
echo "正确用法应该是: ./saturn-device-id.sh -w offsetaddress serialNo length"
exit 1
fi
input_address="$2"
input_string="$3"
input_length="$4"
hex_string=$(printf "%s" "$input_string" | xxd -p)
declare -a values
for ((i = 0; i < ${#hex_string}; i += 2)); do
two_chars="${hex_string:i:2}"
values+=("0x$two_chars")
done
i2cset_command="i2cset -y -f 3 0x50 $input_address"
for element in "${values[@]}"; do
i2cset_command="$i2cset_command $element"
done
i2cset_command="$i2cset_command i"
eval "$i2cset_command"
;;
-r)
if [ $# -ne 3 ]; then
echo "错误:需要提供3个参数,当前参数数量为 $#"
echo "正确用法应该是: ./saturn-device-id.sh -r offsetaddress length"
exit 1
fi
input_address="$2"
input_length="$3"
result=$(i2cget -y -f 3 0x50 $input_address i)
ascii_chars=$(echo "$result" | xxd -r -p)
serial=$(echo "$ascii_chars" | cut -c 1-"$input_length")
echo "$serial"
;;
*)
echo "参数错误 !!!"
echo "正确用法应该是:"
echo "./saturn-device-id.sh -w offsetaddress serialNo length"
echo "./saturn-device-id.sh -r offsetaddress length"
;;
esac
#!/bin/bash
mv /rootfs/etc/systemd/network/20-eth0.network /rootfs/etc/systemd/network/20-eth0.network.back
cp -a /rootfs/etc/systemd/network/20-eth0.network.back /etc/systemd/network/20-eth0.network.back
systemctl restart systemd-networkd
#!/bin/bash
source /opt/tool/get-cpu-temp.sh
cpu_temp_get TempCpu0 TempCpu1
echo "${TempCpu0} ${TempCpu1}"
#!/bin/bash
tmpsda=`smartctl -a /dev/sda |grep Temperature_Celsius |awk -F " " '{print $10}';`
tmpsdb=`smartctl -a /dev/sdb |grep Temperature_Celsius |awk -F " " '{print $10}';`
tmpsdc=`smartctl -a /dev/sdc |grep Temperature_Celsius |awk -F " " '{print $10}';`
tmpsdd=`smartctl -a /dev/sdd |grep Temperature_Celsius |awk -F " " '{print $10}';`
echo "${tmpsda} ${tmpsdb} ${tmpsdc} ${tmpsdd}"
#!/bin/bash
source /opt/tool/pvi_test.sh
pvi_init
pvi_temp_get Temp
pvi_current_get Isource
pvi_volt_get Vdd
pvi_pratio_get Psource
bdTemp=`awk -v H=$Temp 'BEGIN{printf("%.2f", H)}'`
echo -e "${Isource} ${Vdd} ${Psource} ${bdTemp}"
#!/bin/bash
vernum=`manage -p | grep update_region | awk -F "=" '{print $2}'`
if [ $vernum = 0x1 ];then
blckid=11
elif [ $vernum = 0x2 ];then
blckid=12
fi
if ! grep -qs /media/rootfs /proc/mounts; then
mount /dev/mmcblk1p$blckid /media/rootfs
fi
echo -n "Current system version: "
cat /etc/saturn-version
echo -n "Backup system version: "
cat /media/rootfs/etc/saturn-version
if grep -qs /media/rootfs /proc/mounts; then
umount /media/rootfs/
fi
#!/bin/bash
cd /sys/class/gpio
if [ $# -eq 2 ]
then
case "$1" in
--net)
if [ ! -d "gpio153" ]
then
echo 153 > export
fi
cd gpio153
echo "out" > direction
echo $2 > value;;
--sys)
if [ ! -d "gpio41" ] && [ ! -d "gpio42" ]
then
echo 41 > export
echo 42 > export
fi
echo "out" > ./gpio41/direction
echo "out" > ./gpio42/direction
case "$2" in
0)
echo 0 > ./gpio41/value
echo 0 > ./gpio42/value;;
1)
echo 0 > ./gpio41/value
echo 1 > ./gpio42/value;;
2)
echo 1 > ./gpio41/value
echo 0 > ./gpio42/value;;
*)
echo "param error";;
esac;;
*) echo "option error";;
esac
shift
else
echo "paramters number error!!!"
echo "Usage gpioN --sys param/--net param"
fi
\ No newline at end of file
#!/bin/bash
if [ $# -eq 1 ]
then
case "$1" in
1)
hdparm -i /dev/sda | grep SerialNo | awk -F "=" '{print $4}';;
2)
hdparm -i /dev/sdb | grep SerialNo | awk -F "=" '{print $4}';;
3)
hdparm -i /dev/sdc | grep SerialNo | awk -F "=" '{print $4}';;
4)
hdparm -i /dev/sdd | grep SerialNo | awk -F "=" '{print $4}';;
5)
hdparm -i /dev/sde | grep SerialNo | awk -F "=" '{print $4}';;
*) echo "option error";;
esac
shift
else
echo "paramters number error!!!"
echo "Usage $0 param(1:sda 2:sdb 3:sdc 4:sdd 5:sde)"
fi
#!/bin/bash
function kill_process(){
ID=`ps -ef | grep $1 | grep -v grep | awk '{print $1}'`
#echo $ID
for id in $ID
do
kill -9 $id
echo "kill $id"
done
}
if [ $# -eq 1 ]
then
swapoff -a
kill_process ipfs
kill_process /opt/tool/saturn-monitor
kill_process /opt/tool/saturn-cycle-c
kill_process /opt/tool/saturn-collect
kill_process /opt/storage/log/system
systemctl stop minio
systemctl stop nfs-server
systemctl stop smb
systemctl stop tgtd
systemctl stop dev
if grep -qs /opt/storage /proc/mounts; then
umount /dev/LVM/lvdisk
lvremove /dev/LVM/lvdisk
vgremove LVM
pvremove /dev/sda1
pvremove /dev/sdb1
pvremove /dev/sdc1
pvremove /dev/sdd1
fi
umount /dev/sda1
umount /dev/sdb1
umount /dev/sdc1
umount /dev/sdd1
umount /dev/sde1
umount /dev/sde2
if grep -qs /opt/collect /proc/mounts; then
umount /dev/sde2
if [ $? -ne 0 ] ; then
echo "saturn-init.sh exec error! umount /dev/sde2 resource busy."
exit 0
fi
fi
dd if=/dev/zero of=/dev/sda bs=10M count=1
dd if=/dev/zero of=/dev/sdb bs=10M count=1
dd if=/dev/zero of=/dev/sdc bs=10M count=1
dd if=/dev/zero of=/dev/sdd bs=10M count=1
dd if=/dev/zero of=/dev/sde bs=10M count=1
sleep 1
/opt/tool/saturn-device-id.sh -w 0x0 $1 9
echo "yes" |parted /dev/sda mklabel gpt
echo "Ignore" | parted /dev/sda "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdb mklabel gpt
echo "Ignore" | parted /dev/sdb "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdc mklabel gpt
echo "Ignore" | parted /dev/sdc "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdd mklabel gpt
echo "Ignore" | parted /dev/sdd "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sde mklabel gpt
echo "Ignore" | parted /dev/sde "mkpart primary linux-swap 2048s 6G"
parted /dev/sde "mkpart primary ext4 6G -1"
echo "yes" |mkfs.ext4 /dev/sde2
mkswap /dev/sde1
sync
partprobe
else
echo "Usage:saturn-init-prev.sh device-id"
fi
echo "success"
#!/bin/bash
#mkswap /dev/sda1
mkswap /dev/sde1
dd if=/dev/zero of=/dev/ram0 bs=10M count=51
source saturn-lvm-init.sh
mount /dev/LVM/lvdisk /opt/storage
mkdir -p /opt/storage/.ipfs
mkdir -p /opt/storage/download
mkdir -p /opt/storage/config
mkdir -p /opt/storage/app
mkdir -p /opt/storage/log
/opt/tool/saturn-ipfs-installer
sync
dd if=/dev/ram0 of=/dev/mmcblk1p13 bs=1024 seek=4096 count=64 conv=sync,fsync
mount /dev/sde3 /mnt
dd if=/dev/ram0 of=/mnt/uuid bs=1024 count=64 conv=sync,fsync
sync
umount /mnt
#!/bin/bash
systemctl stop minio
systemctl stop nfs-server
systemctl stop smb
systemctl stop tgtd
umount /dev/sda1
umount /dev/sdb1
umount /dev/sdc1
umount /dev/sdd1
dd if=/dev/zero of=/dev/sda bs=10M count=1
dd if=/dev/zero of=/dev/sdb bs=10M count=1
dd if=/dev/zero of=/dev/sdc bs=10M count=1
dd if=/dev/zero of=/dev/sdd bs=10M count=1
sleep 1
/opt/tool/saturn-device-id.sh -w 0x0 $1 16
echo "yes" |parted /dev/sda mklabel gpt
echo "Ignore" | parted /dev/sda "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdb mklabel gpt
echo "Ignore" | parted /dev/sdb "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdc mklabel gpt
echo "Ignore" | parted /dev/sdc "mkpart primary ext4 2048s -1"
echo "yes" |parted /dev/sdd mklabel gpt
echo "Ignore" | parted /dev/sdd "mkpart primary ext4 2048s -1"
sync
partprobe
echo "success"
ipfs init --profile=lowpower
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
ipfs bootstrap rm --all
ipfs bootstrap add /ip4/39.106.216.189/tcp/4001/ipfs/QmabYFoBnCwUYHCx5wU75wtQ57YxqNdHRbLwpX8rVA2Bzo
cp swarm.key $IPFS_PATH
#!/bin/bash
source /opt/tool/pvi_test.sh
pvi_init
count=3
for i in `seq $(($count+1))`
do
#echo "i is $i"
if [ ! -f "/opt/collect/delSata_$i.log" ]; then
break
fi
done
if [ $i -eq $(($count+1)) ]; then
rm /opt/collect/delSata_1.log
i=$count
for j in `seq $(($count-1))`
do
#echo "/opt/log/kmsg_$(($j+1)).log /opt/log/kmsg_$j.log"
mv /opt/collect/delSata_$(($j+1)).log /opt/collect/delSata_$j.log
done
fi
date > /opt/collect/delSata_$i.log
dmesg -c >> /dev/null
while [ TRUE ]
do
check_results=`dmesg | grep "ata4.00: disabled"`
if [[ $check_results =~ "ata4.00: disabled" ]]
then
dmesg -c >> /opt/collect/delSata_$i.log
pvi_current_get Isource
echo -e "Current after unloading : ${Isource}" >> /opt/collect/delSata_$i.log
sync
fi
sleep 1
done
#!/bin/bash
#create physical volume
if [ $# -eq 1 ]; then
str=$1
dev=${str:0:8}
num=${str:8}
# echo "dev: ${dev}"
parted $dev set $num lvm on
pvcreate $1
pvs
pvdisplay
#extern volume group
vgextend LVM $1
vgdisplay
#logic volumn
lvextend -l +100%FREE /dev/LVM/lvdisk
#take effect
resize2fs /dev/LVM/lvdisk
else
echo "Usage:saturn-lvm-extend.sh /dev/sdx1"
fi
#!/bin/bash
#set lvm type
parted /dev/sda set 1 lvm on
parted /dev/sdb set 1 lvm on
parted /dev/sdc set 1 lvm on
parted /dev/sdd set 1 lvm on
#create physical volume
pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/ram0
pvs
pvdisplay
#create volume group
vgcreate -s 64K LVM /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/ram0
vgdisplay
#logic volumn
lvcreate -i 4 -l 100%VG -I 64 -n lvdisk LVM /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
lvdisplay
lvcreate -L 128M -n cache LVM /dev/ram0
lvcreate -L 10M -n meta LVM /dev/ram0
lvconvert --type cache-pool --poolmetadata LVM/meta LVM/cache
#lvconvert --type cache --cachepool LVM/cache --cachemode writeback LVM/lvdisk
lvconvert --type cache --cachepool LVM/cache --cachemode writethrough LVM/lvdisk
#mkfs
echo "yes" |mkfs.ext4 /dev/LVM/lvdisk
#!/bin/bash
#create physical volume
if [ $# -eq 2 ]; then
str=$2
dev=${str:0:8}
num=${str:8}
# echo "dev: ${dev}"
parted $dev set $num lvm on
pvcreate $2
pvs
pvdisplay
#extern volume group
vgextend LVM $2
vgdisplay
#pvmove
pvmove $1 $2
#vgreduce
vgreduce LVM $1
#pvremove
pvremove $1
#logic volumn
lvextend -l +100%FREE /dev/LVM/lvdisk
#take effect
resize2fs /dev/LVM/lvdisk
else
echo "Usage:saturn-lvm-replace.sh /dev/sdx1(remove) /dev/sdx1(replace)"
fi
#!/bin/bash
function kill_process(){
ID=`ps -ef | grep $1 | grep -v grep | awk '{print $1}'`
#echo $ID
for id in $ID
do
kill -9 $id
echo "kill $id"
done
}
echo ***********kill lvm process start***********
kill_process /opt/tool/saturn-cycle-c
kill_process /opt/tool/saturn-collect
lvmpid=$(lsof |grep /opt/storage/ |awk '{print $1}')
for pid in $lvmpid
do
echo kill $pid
kill -9 $pid
done
echo ***********kill lvm process end***********
sleep 5
echo ***********umount start***********
umount /opt/storage
umount /dev/sde2
echo ***********umount end***********
fsck -y /dev/sda1
fsck -y /dev/sdb1
fsck -y /dev/sdc1
fsck -y /dev/sdd1
fsck -y /dev/sde1
fsck -y /dev/sde2
fsck -y /dev/sde3
#!/bin/bash
i=1
systemctl stop minio
systemctl stop nfs-server
systemctl stop smb
systemctl stop tgtd
systemctl stop glusterd
umount /opt/storage/data1
umount /opt/storage/data2
umount /opt/storage/data3
umount /opt/storage/data4
echo "y"|mkfs.ext4 /dev/sda1
echo "y"|mkfs.ext4 /dev/sdb1
echo "y"|mkfs.ext4 /dev/sdc1
echo "y"|mkfs.ext4 /dev/sdd1
sleep 3
while [ $i -le 3 ]
do
bick=$(df |grep data|wc -l)
if [ $bick -eq 4 ];then
echo "break"
break
else
echo "start------"
mount /dev/sda1 /opt/storage/data1
mount /dev/sdb1 /opt/storage/data2
mount /dev/sdc1 /opt/storage/data3
mount /dev/sdd1 /opt/storage/data4
sleep 1
fi
let i++
done
echo "success"
#!/bin/bash
umount /opt/storage/data1
umount /opt/storage/data2
umount /opt/storage/data3
umount /opt/storage/data4
echo "y"|mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sda1
sleep 2
echo "y"|mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdb1
sleep 2
echo "y"|mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdc1
sleep 2
echo "y"|mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdd1
sleep 2
reboot
#!/bin/bash
i=1
systemctl stop minio
systemctl stop nfs-server
systemctl stop smb
systemctl stop tgtd
systemctl stop dev
umount /opt/storage/data{1..8}
disk=$(lsblk |grep -Ew "sda|sdb|sdc|sdd|sde|sdf|sdg|sdh"|wc -l)
if [ $disk -eq 4 ];then
echo "y"|mkfs.ext4 /dev/sda1
echo "y"|mkfs.ext4 /dev/sdb1
echo "y"|mkfs.ext4 /dev/sdc1
echo "y"|mkfs.ext4 /dev/sdd1
else
echo "y"|mkfs.ext4 /dev/sda1
echo "y"|mkfs.ext4 /dev/sdb1
echo "y"|mkfs.ext4 /dev/sdc1
echo "y"|mkfs.ext4 /dev/sdd1
echo "y"|mkfs.ext4 /dev/sde1
echo "y"|mkfs.ext4 /dev/sdf1
echo "y"|mkfs.ext4 /dev/sdg1
echo "y"|mkfs.ext4 /dev/sdh1
fi
sleep 3
/opt/tool/saturn-mount.py
sleep 1
brick=$(df |grep data|wc -l)
if [ ${brick} -eq 4 ];then
echo "success_brick_4"
elif [ ${brick} -eq 8 ];then
echo "success_brick_8"
else
echo "Missing device block"
fi
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import subprocess
import shlex
import sys
import re
from pathlib import Path
blkid = "blkid"
fstab = Path("/etc/fstab")
mount = "mount -a"
def runcmd(cmd, shell=False, encoding='utf-8'):
args = cmd if shell else shlex.split(cmd)
r = subprocess.run(args, shell=shell, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding=encoding)
return r.stdout, r.returncode
class edit_fstab:
def __init__(self, filename: Path, disks: dict):
self.filename = filename
self.disks = disks
def read_vars(self):
__vars = []
r = r'UUID=.*/opt/storage/data.*'
n = 1
with open(self.filename, 'r', encoding='utf-8', newline='') as f:
for line in f:
if re.match(r, line, re.M | re.I):
continue
elif line:
__vars.append(line.replace("\n", ""))
for uuid in self.disks.values():
line = "UUID={} /opt/storage/data{} ext4 defaults,nofail 0 2".format(uuid, n)
n += 1
__vars.append(line)
return __vars
def write_vars(self, __vars: list):
with open(self.filename, 'w', encoding='utf-8', newline='') as f:
for i in __vars:
f.write("{}\n".format(i))
def get_uuid(blkids: str, raid=False):
dev = "md" if raid else "sd"
r = r'(/dev/{}.*): UUID="(.*)" BLOCK_SIZE=.* TYPE="ext4".*'.format(dev)
uuids = blkids.split("\n")
disks = {}
for line in uuids:
mach = re.match(r, line, re.M | re.I)
if mach:
disks[mach.group(1)] = mach.group(2)
return disks
if __name__ == '__main__':
raid = False
if len(sys.argv) == 2:
if sys.argv[1] == "--raid":
raid = True
ret = runcmd(blkid)
disks = get_uuid(ret[0], raid=raid)
if len(disks) in (1, 4, 8):
new_fstab = edit_fstab(fstab, disks)
new_fstab.write_vars(new_fstab.read_vars())
runcmd(mount)
#!/bin/bash
systemctl stop minio smb tgtd nfs-service minio-colony glusterd
umount /opt/storage/data1
md=$(cat /proc/mdstat|awk 'NR==2{print $1}')
if [ ${md} = 'md5' ];then
mdadm -S /dev/md5
else
mdadm -S /dev/md127
fi
sleep 2
disk=$(lsblk |grep -Ew "sda|sdb|sdc|sdd|sde|sdf|sdg|sdh"|wc -l)
if [ $disk -eq 4 ];then
mdadm --misc --zero-superblock /dev/sd{a..d}1
elif [ $disk -eq 8 ];then
mdadm --misc --zero-superblock /dev/sd{a..h}1
fi
rm -rf /etc/mdadm.conf
echo 'success'
#!/bin/bash
#stop server
systemctl stop minio smb nfs-server tgtd minio-colony glusterd
#if device number
disk=$(lsblk |grep -Ew "sda|sdb|sdc|sdd|sde|sdf|sdg|sdh"|wc -l)
if [ $disk -eq 4 ];then
umount /opt/storage/data{1..4}
parted /dev/sda set 1 raid on
parted /dev/sdb set 1 raid on
parted /dev/sdc set 1 raid on
parted /dev/sdd set 1 raid on
elif [ $disk -eq 8 ];then
umount /opt/storage/data{1..8}
parted /dev/sda set 1 raid on
parted /dev/sdb set 1 raid on
parted /dev/sdc set 1 raid on
parted /dev/sdd set 1 raid on
parted /dev/sde set 1 raid on
parted /dev/sdf set 1 raid on
parted /dev/sdg set 1 raid on
parted /dev/sdh set 1 raid on
else
echo "disk_not_found"
fi
#set 1 lvm on
if [ ${disk} -eq 4 ];then
echo 'yes' |mdadm -C -v /dev/md5 -l${1} -n${2} /dev/sd[a-d]1
elif [ ${disk} -eq 8 ];then
echo 'yes' |mdadm -C -v /dev/md5 -l${1} -n${2} /dev/sd[a-h]1
fi
#if md device
md="/dev/md5"
if [ ! -e "$md" ];then
echo "md5_not_found"
exit
fi
mdadm -Ds >> /etc/mdadm.conf
sleep 1
#mkfs
echo "yes" |mkfs.ext4 /dev/md5
sleep 1
/opt/tool/saturn_mount.py --raid
echo "success"
#!/bin/bash
systemctl stop glusterd minio minio-colony tgtd smb nfs-server
umount /dev/md5
echo "y" | mkfs.ext4 /dev/md5
sleep 3
/opt/tool/saturn_mount.py
echo "success"
#!/bin/bash
#set raid type
if [ $# -eq 2 ]; then
str=$2
dev=${str:0:8}
num=${str:8}
# echo "dev: ${dev}"
parted $dev set $num raid on
#remove ssd
mdadm /dev/md5 --remove $1
#replace ssd
mdadm --manage /dev/md5 --add $2
else
echo "Usage:saturn-raid5-replace.sh /dev/sdx1(remove) /dev/sdx1(replace)"
fi
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f /etc/systemd/network/10-enp3s0f0.network ];then
echo "file not found"
else
sed -i "s#Address.*#Address=${1}/24#" /etc/systemd/network/10-enp3s0f0.network
fi
sleep 1
systemctl restart systemd-networkd
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f /etc/systemd/network/20-eth0.network ];then
echo "file not found"
else
sed -i "s#Address.*#Address=${1}/24#" /etc/systemd/network/20-eth0.network
fi
sleep 1
systemctl restart systemd-networkd
#!/bin/bash
IP=`echo $1|egrep -oc "^[^ ]([0-9]{1,3}\.){3}([0-9]{1,3})$"`
if [ ${IP} -eq 0 ];then
echo "请输入合规IP"
exit
else
echo "配置完成$1"
fi
if [ ! -f /etc/systemd/network/21-eth1.network ];then
echo "file not found"
else
sed -i "s#Address.*#Address=${1}/24#" /etc/systemd/network/21-eth1.network
fi
sleep 1
systemctl restart systemd-networkd
#!/bin/bash
source pvi_test.sh
source icm20602.sh
source get-cpu-temp.sh
source get-sata-reg-val.sh
source get-sata-state.sh
source get-sata-err-log.sh
function collect_single() {
pvi_temp_get pviTemp
pvi_current_get Isource
pvi_volt_get Vdd
pvi_pratio_get Psource
temp_get icmTemp
accel_get AccelX AccelY AccelZ
gyro_get GyroX GyroY GyroZ
cpu_temp_get TempCpu0 TempCpu1
echo -e "I: ${Isource} V: ${Vdd} P: ${Psource} T: ${pviTemp}\n"
echo -e "AccelX: ${AccelX}\tAccelY: ${AccelY}\tAccelZ: ${AccelZ}\tT: ${icmTemp}"
echo -e "GyroX : ${GyroX}\tGyroY : ${GyroY}\tGyroZ : ${GyroZ}\n"
echo -e "TempCpu0: ${TempCpu0}\tTempCpu1: ${TempCpu1}\n"
for arg in $*
do
echo -e "${arg} collect information:"
sata_reg_val_get ${arg}
ST=`sata_health_get ${arg}`
echo "SataHealthSt: ${ST}"
sata_err_log_get ${arg}
done
}
SataName="/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde"
pvi_init
icm20602_init
collect_single ${SataName}
#!/bin/bash
STAND=`cat /usr/local/miniornu.sh|awk -F " " 'NR==6{print $2}'`
sed -i "s#$STAND#$1#g" /rootfs/usr/local/miniornu.sh
systemctl restart minio-colony
#!/bin/bash
max=100
echo "************ test start ************" | tee /tmp/test.log
sleep 60
mc alias set ucas http://127.0.0.1 ucasadmin ucasadmin 1>/dev/null 2>&1
sleep 30
i=1
while [ ${i} -le ${max} ]
do
echo ">>>>>>> count:${i} start <<<<<<<<" | tee -a /tmp/test.log
date | tee -a /tmp/test.log
mc support perf --json ucas >/tmp/now.log
if [ $? -eq 0 ];then
put=`cat /tmp/now.log|awk -F "throughputPerSec" '{print $2}'|awk -F: '{print $2}'|awk -F, '{print $1}'|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print max}'`
get=`cat /tmp/now.log|awk -F "throughputPerSec" '{print $4}'|awk -F: '{print $2}'|awk -F, '{print $1}'|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print max}'`
let put=put/1024/1024
let get=get/1024/1024
echo "put:${put} get:${get}" |tee -a /tmp/test.log
if [ ${put} -ge 150 -a ${get} -ge 150 ];then
echo "count:${i} pass" | tee -a /tmp/test.log
else
echo "count:${i} fail" | tee -a /tmp/test.log
systemctl stop hb.service
/opt/tool/saturn-gpio-set.sh --sys 0
exit 1
fi
else
cat /tmp/now.log | tee -a /tmp/test.log
echo "count:${i} fail" | tee -a /tmp/test.log
systemctl stop hb.service
/opt/tool/saturn-gpio-set.sh --sys 0
exit 1
fi
let i=i+1
sleep 600
done
systemctl stop hb.service
/opt/tool/saturn-gpio-set.sh --sys 2
echo "********* ALL test PASS !!! ************" | tee -a /tmp/test.log
cp /tmp/test.log /opt/collect/
exit 0
#!/bin/bash
sde2=$(df |grep sde2|awk '{print $1}')
if [ ! ${sde2} ];then
echo "sde error"
exit
else
echo "sde success"
fi
work=/opt/collect/20-eth0.network
work1=/opt/collect/21-eth1.network
#ls -l /opt/collect/20-eth0.network >/dev/null 2>&1
#if [ $? -eq 0 ];then
if [ -f ${work} ] && [ -f ${work1} ];then
echo "fileexist success"
elif [ -L "/etc/systemd/network/*.network" ];then
echo "profile error"
exit
else
cp /etc/systemd/network/*.network /opt/collect/
echo "profile success"
fi
if [ $# -eq 2 ]
then
case "$1" in
-path)
file=$2
cd ${file%/*}
if `tar -zxmf ${file##*/}`
then
echo "tar $2 extract success"
umount /dev/mmcblk1p11
umount /dev/mmcblk1p12
if `manage -update ./package ./rootfs.tar.gz`
then
echo "system update success"
rm -rf ./package ./rootfs.tar.gz
sync
fsck -y /dev/mmcblk1p11
fsck -y /dev/mmcblk1p12
sync
sync
sync
reboot
else
echo "system update error"
fi
else
echo "tar extract error"
fi;;
*) echo "option error";;
esac
shift
else
echo "paramters number error!!!"
echo "Usage:saturn-system-update.sh -path xxx.tar.gz"
fi
#!/bin/bash
echo "$1">/opt/collect/service_type
/key/swarm/psk/1.0.0/
/base16/
f17d286b7bedc4e007f79f5a8a7c62155fb0cb4fe7a54e7290abf1c69f9d9b77
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论