提交脚本
This commit is contained in:
parent
bdbb78fe94
commit
8ab0d08440
|
@ -0,0 +1,80 @@
|
||||||
|
#encoding=utf-8
|
||||||
|
import csv
|
||||||
|
from faker import Faker
|
||||||
|
|
||||||
|
"""
|
||||||
|
生成尽可能真实的假数据
|
||||||
|
|
||||||
|
使用方法:
|
||||||
|
1.安装依赖包
|
||||||
|
pip install faker
|
||||||
|
2.执行脚本
|
||||||
|
python faker_demo.py
|
||||||
|
3.当前目录,查看生成的数据
|
||||||
|
"""
|
||||||
|
|
||||||
|
#保存为csv文件
|
||||||
|
def save_data_csv(file_name):
|
||||||
|
#获取数据
|
||||||
|
datas = faker_data()
|
||||||
|
#保存
|
||||||
|
with open(file_name,'w+',encoding='utf-8',newline='') as file_csv:
|
||||||
|
writer = csv.writer(file_csv, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
|
||||||
|
writer.writerows(datas)
|
||||||
|
|
||||||
|
#生成数据
|
||||||
|
def faker_data():
|
||||||
|
#指定数据的国家地区
|
||||||
|
f = Faker('zh-CN')
|
||||||
|
#定义一个列表,用来存放所有数据
|
||||||
|
datas = []
|
||||||
|
#标题
|
||||||
|
title = ["uuid","id","name","mobile","ssn","sex","email","job","address","actime_time"]
|
||||||
|
#title2 = ["唯一标识","编号","姓名","手机号","身份证号","性别","邮箱","职业","家庭地址","获取时间"]
|
||||||
|
#添加标题到列表中
|
||||||
|
datas.append(title)
|
||||||
|
#datas.append(title2)
|
||||||
|
#开始按照标题的顺序,生成200条数据
|
||||||
|
for i in range(0,100):
|
||||||
|
#定义一个列表,用来存一行数据
|
||||||
|
data = []
|
||||||
|
#uuid
|
||||||
|
data.append(f.uuid4())
|
||||||
|
#编号,001,不足3位的左边用0来补齐
|
||||||
|
data.append(str(i+1).rjust(3,'0'))
|
||||||
|
#姓名
|
||||||
|
data.append(f.name())
|
||||||
|
#手机号
|
||||||
|
data.append(f.phone_number())
|
||||||
|
#身份证
|
||||||
|
ssn = f.ssn()
|
||||||
|
data.append(ssn)
|
||||||
|
#性别,根据身份证的第17位来判断
|
||||||
|
ssn_sex = int(ssn[16:17])
|
||||||
|
#01:男,02:女
|
||||||
|
if ssn_sex % 2:
|
||||||
|
sex = "01"
|
||||||
|
else:
|
||||||
|
sex = "02"
|
||||||
|
data.append(sex)
|
||||||
|
#邮箱
|
||||||
|
data.append(f.email())
|
||||||
|
#职业
|
||||||
|
data.append(f.job())
|
||||||
|
#地址,让其更加复合中国的地址
|
||||||
|
address = f.address()[:-9] + str(f.pyint(min_value=0, max_value=999))+ "号"
|
||||||
|
data.append(address)
|
||||||
|
#获取时间,近3年的
|
||||||
|
actime_time = f.date_time_between(start_date="-3y", end_date="now")
|
||||||
|
data.append(actime_time)
|
||||||
|
#将这一行数据添加到datas中
|
||||||
|
datas.append(data)
|
||||||
|
#返回所有的数据
|
||||||
|
return datas
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
#文件名
|
||||||
|
file_name = 'test.csv'
|
||||||
|
save_data_csv(file_name)
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import smtplib
|
||||||
|
import os
|
||||||
|
|
||||||
|
from email.mime.text import MIMEText
|
||||||
|
from email.header import Header
|
||||||
|
from email.mime.multipart import MIMEMultipart
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
"""
|
||||||
|
将作业成功率的结果发邮件
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#公共的
|
||||||
|
now=os.path.dirname(os.path.abspath(__file__))
|
||||||
|
file_path=os.path.join(now,"check_report.txt")
|
||||||
|
week = str(datetime.now().isocalendar()[1])
|
||||||
|
|
||||||
|
def send_mail():
|
||||||
|
# 发件人
|
||||||
|
sender = 'mh@unamail.com'
|
||||||
|
# 接收邮件,可以发给多人
|
||||||
|
receivers = ['mh@unamail.com','zry@unamail.com','ypy@unamail.com','zxw@unamail.com']
|
||||||
|
# 邮件主体
|
||||||
|
msg = MIMEMultipart()
|
||||||
|
# 正文取文本中的内容
|
||||||
|
with open(file_path, "r") as f:
|
||||||
|
msgdata = f.read()
|
||||||
|
message = "第{0}周,长期任务的作业成功率如下:\n{1}".format(
|
||||||
|
week, msgdata)
|
||||||
|
msg.attach(MIMEText(message, 'plain', _charset="utf-8"))
|
||||||
|
# 发送者
|
||||||
|
msg['From'] = Header(sender, 'utf-8')
|
||||||
|
# 接收者
|
||||||
|
msg['To'] = Header(receivers[0], 'utf-8')
|
||||||
|
# 主题
|
||||||
|
subject = '【长期任务】第W{0}周作业成功率情况'.format(week)
|
||||||
|
msg['Subject'] = Header(subject, 'utf-8')
|
||||||
|
# 附件信息
|
||||||
|
#att = MIMEText(open(file_week_path, 'rb').read(), 'base64', 'utf-8')
|
||||||
|
#att["Content-Type"] = 'application/octet-stream'
|
||||||
|
#att["Content-Disposition"] = 'attachment; filename="{}"'.format(
|
||||||
|
# file_name_week)
|
||||||
|
#msg.attach(att)
|
||||||
|
|
||||||
|
try:
|
||||||
|
smtpObj = smtplib.SMTP('10.10.110.102')
|
||||||
|
smtpObj.sendmail(sender, receivers, msg.as_string())
|
||||||
|
print("邮件发送成功")
|
||||||
|
except smtplib.SMTPException:
|
||||||
|
print("Error: 无法发送邮件")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
send_mail()
|
|
@ -0,0 +1,64 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
PRG="$0"
|
||||||
|
while [ -h "$PRG" ]; do
|
||||||
|
ls=$(ls -ld "$PRG")
|
||||||
|
link=$(expr "$ls" : '.*-> \(.*\)$')
|
||||||
|
if expr "$link" : '.*/.*' >/dev/null; then
|
||||||
|
PRG="$link"
|
||||||
|
else
|
||||||
|
PRG=$(dirname "$PRG")/"$link"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
PRGDIR=$(dirname "$PRG")
|
||||||
|
|
||||||
|
#full path
|
||||||
|
cd $PRGDIR
|
||||||
|
ROOT_DIR=$(pwd)
|
||||||
|
cd - >/dev/null
|
||||||
|
|
||||||
|
|
||||||
|
echo "" >$ROOT_DIR/check_report.txt
|
||||||
|
|
||||||
|
|
||||||
|
# 查询某个策略的成功率
|
||||||
|
function check_sucessful(){
|
||||||
|
|
||||||
|
# 代理信息和策略名
|
||||||
|
comname=$1
|
||||||
|
compid=$2
|
||||||
|
policyname=$3
|
||||||
|
|
||||||
|
#查询
|
||||||
|
recode=`mysql -uunadba -p1223Bc@2008 unary -e "select 1-(tb1.n1/tb2.n2) from ( (select sum(number) as n1 from ( select operdesc,count(*) as number from tbl_jobhistory where policyname='${policyname}' and compid='${compid}' group by operdesc) as tmp1 where tmp1.operdesc like '%失败%') as tb1 right JOIN (select count(*) as n2 from tbl_jobhistory where policyname='${policyname}' and compid='${compid}') tb2 on 1=1);" | tail -1`
|
||||||
|
|
||||||
|
#输出结果
|
||||||
|
echo -e "${comname}" >>$ROOT_DIR/check_report.txt
|
||||||
|
echo -e "\t ${policyname} 的作业成功率为: ${recode}" >>$ROOT_DIR/check_report.txt
|
||||||
|
echo -e "\n-----------\n" >>$ROOT_DIR/check_report.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 需要检查的代理
|
||||||
|
# mh
|
||||||
|
check_sucessful "6.9长期mh_MySQL定时备份_13.167" "811da1a9258bb690d58aaef5aa958027" "长期任务-mysql物理多通道"
|
||||||
|
check_sucessful "6.9长期mh_OraclePhysical定时备份_29.41" "effbff8590c4c69a33151fa4d4fff2e1" "长期Oracle多通道"
|
||||||
|
check_sucessful "6.9长期mh_系统定时备份_29.33" "bd22ea57feecb5a7f96e67035c204e02" "长期系统"
|
||||||
|
# ypy
|
||||||
|
check_sucessful "6.9长期MySQLCDM_linux_29.48_ypy" "50061b4e4f80fa802067209eb18a232f" "长期"
|
||||||
|
check_sucessful "6.9长期OracleCDM备份_linux_29.40_ypy" "46117564f229b9b7f407b21aa5d7fa1c" "长期"
|
||||||
|
check_sucessful "6.9长期分区_WIN_29.47_ypy" "d9f991a83017a2b4ad9161044f5fca8f" "长期"
|
||||||
|
#zry
|
||||||
|
check_sucessful "6.9长期定时文件29.49_zry" "b1b4c1d1b276265ae78914f350e29f96" "多通道"
|
||||||
|
check_sucessful "6.9长期定时文件29.49_zry" "b1b4c1d1b276265ae78914f350e29f96" "普通"
|
||||||
|
check_sucessful "6.9长期副本文件CDM备份29.42_zry" "55037758a2f200826bff0061d6dbdb91" "文件CDM"
|
||||||
|
check_sucessful "6.9长期副本文件CDM备份29.42_zry" "55037758a2f200826bff0061d6dbdb91" "218"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "开始发送邮件"
|
||||||
|
|
||||||
|
#python $ROOT_DIR/SendCheckJobReport.py
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
用途:
|
||||||
|
检查指定的代理策略的成功率,并将结果发邮件
|
|
@ -0,0 +1,45 @@
|
||||||
|
@echo off
|
||||||
|
echo 开始获取本机信息,请稍等......
|
||||||
|
|
||||||
|
rem 代理的logs路径
|
||||||
|
set agentlog="D:\agent\ubackup\uagent\logs"
|
||||||
|
|
||||||
|
rem 定义输出的文件
|
||||||
|
for /f "tokens=*" %%i in ('powershell -c "Get-Date -UFormat %%V"') do (
|
||||||
|
set vars=%%i
|
||||||
|
)
|
||||||
|
|
||||||
|
set filename=C:\ComputerInfos_week_%vars%.txt
|
||||||
|
|
||||||
|
echo 本周是第:%vars%周 >>%filename%
|
||||||
|
|
||||||
|
|
||||||
|
SET CurrentTime=%date:~0,10% %time:~0,5%
|
||||||
|
echo 本次运行时间:%CurrentTime% >>%filename%
|
||||||
|
|
||||||
|
|
||||||
|
rem 查看内存使用情况
|
||||||
|
echo 1.内存使用情况:>>%filename%
|
||||||
|
wmic OS get FreePhysicalMemory| findstr /r /v "^$" | more >>%filename%
|
||||||
|
wmic ComputerSystem get TotalPhysicalMemory| findstr /r /v "^$" |more >>%filename%
|
||||||
|
|
||||||
|
rem 查看磁盘使用情况:
|
||||||
|
echo 2.磁盘使用情况:>>%filename%
|
||||||
|
wmic logicaldisk get caption,freespace,size| findstr /r /v "^$"|more >>%filename%
|
||||||
|
|
||||||
|
rem 查看CPU使用情况:
|
||||||
|
echo 3.CPU使用率:>>%filename%
|
||||||
|
wmic cpu get loadpercentage| findstr /r /v "^$"|more >>%filename%
|
||||||
|
|
||||||
|
|
||||||
|
rem 查看日志文件大小:
|
||||||
|
echo 4.日志文件路径:>>%filename%
|
||||||
|
|
||||||
|
dir %agentlog% >>%filename%
|
||||||
|
|
||||||
|
echo "===================%CurrentTime%已经获取系统信息================ " >>%filename%
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#set -x
|
||||||
|
#uagent路径地址
|
||||||
|
uagent_dir=/agent/ubackup/uagent/logs/
|
||||||
|
|
||||||
|
|
||||||
|
#创建存放的目录
|
||||||
|
report_dir="/opt/sys-info/"
|
||||||
|
mkdir -p $report_dir
|
||||||
|
|
||||||
|
IP=`hostname -I|awk '{print $1}'`
|
||||||
|
|
||||||
|
#按周创建文件,一周一个
|
||||||
|
week_number=`date +%V`
|
||||||
|
filename=${IP}-ComputerInfos-week-${week_number}.txt
|
||||||
|
file_path=$report_dir/$filename
|
||||||
|
|
||||||
|
#输出需要的信息
|
||||||
|
now=$(date +"%Y-%m-%d %H:%M:%S")
|
||||||
|
echo "-------------------------------------------" >> $file_path
|
||||||
|
echo "当前时间:$now" >> $file_path
|
||||||
|
echo "当前地址:$IP" >> $file_path
|
||||||
|
|
||||||
|
# CPU
|
||||||
|
echo "" >> $file_path
|
||||||
|
echo "内存信息:">> $file_path
|
||||||
|
free -h >> $file_path
|
||||||
|
|
||||||
|
# uagent_dir的日志大小
|
||||||
|
echo "" >> $file_path
|
||||||
|
echo "uagent日志大小:">> $file_path
|
||||||
|
du -h $uagent_dir >> $file_path
|
||||||
|
|
||||||
|
# 磁盘空间使用情况
|
||||||
|
echo "" >> $file_path
|
||||||
|
echo "磁盘空间使用情况:">> $file_path
|
||||||
|
df -h >> $file_path
|
||||||
|
|
||||||
|
echo "" >> $file_path
|
||||||
|
echo "-------------------------------------------" >> $file_path
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
获取机器的一些信息,目前已经放弃使用了,改为py来处理:
|
||||||
|
https://gitea.kiki.kim/ha/check-system-info.git
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import smtplib
|
||||||
|
import subprocess
|
||||||
|
import shutil
|
||||||
|
import os
|
||||||
|
|
||||||
|
from email.mime.text import MIMEText
|
||||||
|
from email.header import Header
|
||||||
|
from email.mime.multipart import MIMEMultipart
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
"""
|
||||||
|
执行备份集检查,将检查结果发送邮件
|
||||||
|
|
||||||
|
使用方法:
|
||||||
|
1.先手动确认backupCheckTool.jar运行无问题
|
||||||
|
2.将本脚本和backupCheckTool.jar放在同一个目录中
|
||||||
|
3.修改邮箱的收发件人地址
|
||||||
|
4.执行脚本
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#公共的
|
||||||
|
now=os.path.dirname(os.path.abspath(__file__))
|
||||||
|
week = str(datetime.now().isocalendar()[1])
|
||||||
|
|
||||||
|
file_path=os.path.join(now,"report.txt")
|
||||||
|
file_name_week="report" + week + ".txt"
|
||||||
|
file_week_path=os.path.join(now,file_name_week)
|
||||||
|
|
||||||
|
#检查工具
|
||||||
|
checktool=os.path.join(now,"backupCheckTool.jar")
|
||||||
|
if not os.path.exists(checktool):
|
||||||
|
assert False,u'backupCheckTool.jar not found,please check it!!'
|
||||||
|
|
||||||
|
def send_mail():
|
||||||
|
# 发件人
|
||||||
|
sender = 'mh@unamail.com'
|
||||||
|
# 接收邮件,可以发给多人
|
||||||
|
receivers = ['mh@unamail.com']
|
||||||
|
# 邮件主体
|
||||||
|
msg = MIMEMultipart()
|
||||||
|
# 正文
|
||||||
|
#文本内容太多了,不放了。
|
||||||
|
#with open(file_path, "r") as f: # 打开文本
|
||||||
|
# msgdata = f.read()
|
||||||
|
msgdata=""
|
||||||
|
message = "第{0}周,备份集检测已完成,检测内容将附件\n{1}".format(
|
||||||
|
week, msgdata)
|
||||||
|
msg.attach(MIMEText(message, 'plain', _charset="utf-8"))
|
||||||
|
# 发送者
|
||||||
|
msg['From'] = Header(sender, 'utf-8')
|
||||||
|
# 接收者
|
||||||
|
msg['To'] = Header(receivers[0], 'utf-8')
|
||||||
|
# 主题
|
||||||
|
subject = '【长期任务】备份集检查-W{0}'.format(week)
|
||||||
|
msg['Subject'] = Header(subject, 'utf-8')
|
||||||
|
# 附件信息
|
||||||
|
att = MIMEText(open(file_week_path, 'rb').read(), 'base64', 'utf-8')
|
||||||
|
att["Content-Type"] = 'application/octet-stream'
|
||||||
|
att["Content-Disposition"] = 'attachment; filename="{}"'.format(
|
||||||
|
file_name_week)
|
||||||
|
msg.attach(att)
|
||||||
|
|
||||||
|
try:
|
||||||
|
smtpObj = smtplib.SMTP('10.10.110.102')
|
||||||
|
smtpObj.sendmail(sender, receivers, msg.as_string())
|
||||||
|
print("邮件发送成功")
|
||||||
|
except smtplib.SMTPException:
|
||||||
|
print("Error: 无法发送邮件")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
#删除之前的文件
|
||||||
|
if os.path.exists(file_path):
|
||||||
|
os.remove(file_path)
|
||||||
|
#运行检查工具
|
||||||
|
commdline = ['java', '-jar', '-Dusername=unadba', '-Dpassword=1223Bc@2008', 'backupCheckTool.jar']
|
||||||
|
recode=subprocess.call(commdline)
|
||||||
|
#处理检查结果
|
||||||
|
shutil.copy2(file_path,file_week_path)
|
||||||
|
#发邮件
|
||||||
|
send_mail()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue