python简单自动备份
该脚本的功能是模糊匹配到需要备份的文件,然后复制到指定路径。
import time,os
path = '/opt/dmdbms/bak/' # 源目录
filename = 'DB_V3X_INCREMENT_'+time.strftime('%Y_%m_%d', time.localtime())+'*'
dest = '/opt/upload/backup/dbbak/shizhengfu/' # 目标目录
if os.path.exists(path) and os.path.exists(dest):
if os.system('cp -R %s %s > /dev/null 2>&1'%(path+filename,dest)) == 0:
print ('备份成功!')
else:
print ('备份失败')
else:
print ('原路径或目标路径不存在!')
推荐python3运行该脚本。
docker版zabbix每个镜像的启动命令
1.mysql-server:latest
docker run \
--name=mysql-server \
--hostname=1ee896ca9ff2 \
--mac-address=02:42:ac:11:00:03 \
--env=MYSQL_USER=zabbix \
--env=MYSQL_PASSWORD=zabbix_pwd \
--env=MYSQL_ROOT_PASSWORD=admins \
--env=MYSQL_DATABASE=zabbix \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--env=MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock \
--volume=/opt/docker/mysql:/var/lib/mysql \
-p 3307:3306 \
--expose=33060 \
--expose=33061 \
--restart=always \
--runtime=runc \
--detach=true \
-t \
mysql/mysql-server:latest \
--character-set-server=utf8 --collation-server=utf8_bin
docker run --name mysql-server -t \
-p 3307:3306 \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e...
python批量进行ping检测
该脚本需要ping3模块,可以通过如下命令进行安装:
pip3 install ping3
该脚本是zabbix的监控脚本,所以最后反馈Normal或者False。
import ping3
def ping(ip):
a = 0 #ping成功计数器
for addr in ip:
if ping3.ping(addr,timeout=5000,unit='ms'): #如果能ping通就把a+1
a = a+1
else:
continue
if a == len(ip):
print ('Normal') #如果成功的次数和list的长度一致,说明网络正常
else:
print ('False')
if __name__ == '__main__':
ping(['192.168.0.2','192.168.0.3'])
另一个实现方法:
import subprocess
def check_alive(ip):
result = subprocess.call('ping -w 5 -c 1 %s' %ip,stdout=subprocess.PIPE,shell=True)
if result == 0:
print('%s 能ping通' %(ip))
else:
print('%s ping不通!' % ip)
if __name__ == '__main__':
print("开始批量ping所有IP!")
for i in ['192.168.0.2','192.168.0.3']:
check_alive(i)
推荐python3运行脚本。
Python计算线程数
该脚本实现通过进程名获取到所有进程id,然后计算每个进程的线程数并相加。
from subprocess import check_output,getoutput
def get_pid(name): #获取应用进程id
return map(int,check_output(["pidof",name]).split())
if __name__ == '__main__':
result=0
for pid in get_pid('sshd'): #sshd 替换为对应进程名
output = getoutput('pstree -p %s | wc -l'%(pid)) #返回线程数
result=result+int(output) #计算线程数总和
print (result)
运行python脚本时传入参数
python实现类似于sh tools.sh start效果. 使用sys.argv最简单的方式如下:
def utils1():
print(sys.argv[1])
if __name__ == '__main__':
utils1()
运行python testtmp.py start得到输出start. 当然根据日常使用情况,写的完整一些就是:
class UtilClass:
def __init__(self, argv=None):
self.args = argv
def prt(self):
try:
rec = self.args[1]
except IndexError:
rec = 'help'
if rec == 'start':
print('do start action')
elif rec == 'stop':
print('do stop action')
elif rec == 'help':
print('print help info')
else:
print('Unknown command:', rec)
def utildef(args=None):
util = UtilClass(args)
util.prt()
def utils():
utildef(sys.argv)
if __name__ == '__main__':
utils()
实现后的效果为:
D:\pyreadspace\justtest>python testtmp.py start
do start action
D:\pyreadspace\justtest>python testtmp.py stop
do...
python模拟网站登录并获取数据
该脚本通过仿冒cookie的方式实现访问需要登录的网站页面。
import sys
import io
from urllib import request
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
#登录后才能访问的网站
url = 'http://10.51.6.66:9060/console/'
#浏览器登录后得到的cookie,也就是刚才复制的字符串
cookie_str = r'DWRSESSIONID=cDfDbucPGpFmTk2t0QCf842p5Pn; console-d-4c75-a=E25BEFC43F7EE539F65EC674844A6821'
#登录后才能访问的网页
url = 'http://10.51.6.66:9060/console/rest/api/jvm_memory_detail?attrName=HeapMemoryUsage'
req = request.Request(url)
#设置cookie
req.add_header('cookie', cookie_str)
#设置请求头
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36')
resp = request.urlopen(req)
print(resp.read().decode('utf-8'))