各种常用脚本 Tips:持续更新中...

Nginx日志切割

#!/bin/bash
s_log=/usr/local/nginx/logs/access.log
d_log=/usr/local/nginx/logs/access`date +%Y%m%d`.log
mv $s_log $d_log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

健康检测

 #!/bin/bash 
#this is a system infomation script.
#histroy 2019-4-11
CPUDoage=`expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}')`
Usedmemory=`free -m | egrep "Mem" | awk '{print $3}'`
Totalmemory=`free -m | egrep "Mem" | awk '{print $2}'`
onlymemory=`expr $Usedmemory \* 100 / $Totalmemory`

diskused=`df -h | egrep "/$" | awk '{print $5}' | awk '{print $1}'`
diskused2=`df -h | egrep "/$" | awk '{print $5}' | awk '{print $1}' | awk -F% '{print $1}'`
onlydiskused=`df -h | egrep "/$" | awk '{print $5}'`

echo -e "\033[36m+++++++++++++++++++++++++++++++++ \033[0m" 
echo "This is CPU Dosage info." 
echo ""
echo "Your CPU already used $CPUDoage %"

echo -e "\033[36m+++++++++++++++++++++++++++++++++ \033[0m" 
echo "This is memory info."
echo ""
echo "Your Memory used $onlymemory %"

echo -e "\033[36m+++++++++++++++++++++++++++++++++ \033[0m" 
echo "This is disk info."
echo ""
echo "Your disk used $diskused "
echo ""

if [ $diskused2 -gt 10 ]
then
    echo -e "\033[31mWarning : Your Disk soon full.\033[0m"
	mail -s "disk"  127.0.0.1 < /tmp/disk.txt
elif [ $onlymemory -gt 90 ]
then
    echo -e "\033[31mWarning : Your Memory soon full.\033[0m"
	mail -s "memory"  127.0.0.1 < /tmp/memory.txt
elif [ $CPUDoage -gt 90 ]
then
    echo -e "\033[31mWarning : Your CPU soon full.\033[0m"
	mail -s "cpu"  127.0.0.1 < /tmp/cpu.txt
fi

Jenkins回滚脚本

#!/bin/bash 

export program_path="$1"
export archive_path="$2"
export source_path="$3"
export date="$4"
export ACTION="$5" 
echo ${ACTION}

export start_file="/usr/bin/supervisorctl" 
export source_backup="/data/src/lotterybackup"
export program_backup="/opt/lotteryTicket/backup"

[ ! $1 ] && exit
[ ! $2 ] && exit 
[ ! $3 ] && exit 
[ ! $4 ] && exit 
[ ! $5 ] && exit 
#program_path='/opt/lotteryTicket'
#
#archive_path="/usr/local/jenkins_data/workspace/test17_lottery-Ticket_172.16.10.96"
#
#source_path="/data/src/lotteryTicket"
#
#date=`date +%F-%H-%M`

#now funcation
source_backup () {
	[ -d ${source_backup} ] || mkdir ${source_backup}
	[ -d ${program_backup} ] || mkdir ${program_backup}
	tar cf lotteryTicket-${date}.tar.gz ${source_path}/  
	mv lotteryTicket-${date}.tar.gz ${source_backup} && cd ${source_backup} && rm -f `ls -t ${source_backup:=UNSET} | tail -n +3`
	cp -f ${source_path}/lotteryTicket ${program_path}/
	cp -f ${program_path}/lotteryTicket ${program_backup}/lotteryTicket-${date} && cd ${program_backup} && rm -f `ls -t ${program_backup:=UNSET} | tail -n +3`  
	cd ${program_path} && ${start_file} restart lotteryTicket	
	
}


#backup funcation
backup_funcation () {
	cd ${program_path} && rm -f ${program_path}/lotteryTicket
	ln -s ${program_backup}/`ls -t ${program_backup}/ | head -n +1` ${program_path}/lotteryTicket
	cd ${program_path} && ${start_file} restart lotteryTicket	
}

case $ACTION  in 
	now)
		source_backup 
	;;	
	backup)
		backup_funcation
	;;
esac

将数据库IP写入iptables

# coding=utf-8
import pymysql
import os

class iptable_check:
	global db
	global cursor
	global ip_list
	db = pymysql.connect("localhost", "root", "123", "firewalld", charset='utf8')
	cursor = db.cursor()
	ip_list = []

	def __init__(self):
		print ("---"*20)


	def mysqlDb(self,sql):
		try:
			cursor.execute(sql)
			db.commit()
		except:
			db.rollback()
			print("Update comm get some probelm.")

	def cursorDelete(self,row,ck):
		ip = row[0]
		port = row[1]
		state = row[2]
		ipId = row[3]
		os.system("sed -i '/"+str(ip)+"\/24 --dport "+str(port)+" -j ACCEPT/d'  iptables")
		sql = "DELETE FROM iptable_manage WHERE id = '"+str(ipId)+"'"   
		ck.mysqlDb(sql)

	def cursorSelect(self):
		sql = "SELECT ip,port,state,id as ipId FROM iptable_manage"
		try:
			cursor.execute(sql)
			results = cursor.fetchall()
			for row in results:
				entity = [row[0],row[1],row[2],row[3]]
				ip_list.append(entity)
			print("end:"+str(ip_list))
		except:
			print ("Error: unable to fecth data")
	
	def addIptable(self,row,ck):
		ip = row[0]
		port = row[1]
		state = row[2]
		ipId = row[3]
		os.system("sed -i '/COMMIT/i\-A INPUT -p tcp -m state --state NEW -m tcp -s "+str(ip)+"/24 --dport "+str(port)+" -j ACCEPT' iptables")
		sql = "UPDATE firewalld.iptable_manage SET state = '1' where id = "+str(ipId)
		ck.mysqlDb(sql)

	def cursorChange(self):
		ck = iptable_check()
		ck.cursorSelect()
		for row in ip_list:
			if row[2] == 0:
				ck.addIptable(row,ck)
			elif row[2] == 2:
				ck.cursorDelete(row,ck)

	
ck = iptable_check()
ck.cursorChange()
发布了39 篇原创文章 · 获赞 13 · 访问量 3375

猜你喜欢

转载自blog.csdn.net/qq_30036471/article/details/97131236