摘要:一、zabbix安装环境zabbix的安装配置是个较繁杂的过程,它是基于lamp或lnmp,只不过之前装的lamp架构可能无法满足zabbix的需求,比如某些php的扩展,所以我建议重装php。1、查看linux的版本信息[root@localhost ~]# lsb_release -aLSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing
2017年04月10日
生产环境代码包发布管理
摘要:#!/usr/bin/env pythonfrom fabric.api import *from fabric.colors import *from fabric.context_managers import *from fabric.contrib.console import confirmimport timeenv.user='root'env.hosts=['192.168.1.21','192.168.1.22']env.password='SKJh935yft#'env.project_dev_source = '/data/dev/Lwebadmin/'env.project_tar_source = '/data/dev/releases/'env.project_p
分类:自动化运维
2017年04月10日
部署LAMP业务服务环境
摘要:[root@node110 fabric]# cat simple5.py #!/usr/bin/env pythonfrom fabric.colors import *from fabric.api import *env.user='root'env.roledefs = { 'webservers': ['192.168.1.21', '192.168.1.22'], 'dbservers': ['192.168.1.23']}env.passwords = { 'root@192.168.1.21:22': 'SKJh935yft#', 'root@192.168.1.
分类:自动化运维
2017年04月10日
文件打包,上传与校验
摘要:[root@node110 fabric]# cat simple4.py#!/usr/bin/env pythonfrom fabric.api import *from fabric.context_managers import *from fabric.contrib.console import confirmenv.user='root'#env.hosts=['192.168.1.21','192.168.1.22','192.168.1.23']env.hosts=['192.168.2.110','192.168.2.120']env.password='123456'@task@runs_oncedef tar_task(): with lcd(
分类:自动化运维
2017年04月10日
网关模式文件上传与执行
摘要:[root@node110 fabric]# cat simple3.py#!/usr/bin/env pythonfrom fabric.api import *from fabric.context_managers import *from fabric.contrib.console import confirmenv.user='root'#env.gateway='192.168.1.23'env.gateway='192.168.2.120'#env.hosts=['192.168.1.21','192.168.1.22']env.hosts=['192.168.2.121']env.passwords = { # 'root@192.168.1.21:
分类:自动化运维
2017年04月10日
动态获取远程目录列表
摘要:[root@node110 fabric]# cat simple2.py#!/usr/bin/env pythonfrom fabric.api import * env.user='root'env.hosts=['192.168.2.110','192.168.2.120']env.password="123456"@runs_oncedef input_raw(): return prompt("please input directory name:",default="/home")def worktask(dirname): run("ls -l
分类:自动化运维
2017年04月10日
查看本地与远程主机信息
摘要:[root@node110 fabric]# cat simple1.py#!/usr/bin/env pythonfrom fabric.api import *env.user='root'env.hosts=['192.168.2.110','192.168.2.120']env.password='123456'@runs_once #只有第一台主机触发此函数(192.168.2.110)def local_task(): local("uname -a")def remote_task(): with cd("/tmp"): &
分类:自动化运维
2017年04月10日
直接在命令行上批量执行命令
摘要:[root@node110 fabric]# fab -p 123456 -H 192.168.2.120,192.168.2.121 -- 'uname -s'[192.168.2.120] Executing task '<remainder>'[192.168.2.120] run: uname -s[192.168.2.120] out: Linux[192.168.2.120] out: [root@node110 fabric]# fab -p 123456 -H 192.168.2.120,192.168.2.121 -- 'uname -a'[192.168.2.120] Executing task '<remainder>'[192.16
分类:自动化运维
2017年04月10日
fabfile.py
摘要:[root@node110 fabric]# cat fabfile.py#!/usr/bin/env pythonfrom fabric.api import rundef host_type(): run('uname -s')结果:[root@node110 fabric]# fab -H 192.168.2.120 host_type[192.168.2.120] Executing task 'host_type'[192.168.2.120] run: uname -s[192.168.2.120] out: Linux[192.168.2.120] out:
分类:自动化运维
2017年04月10日
实现堡垒机模式下的远程文件上传
摘要:[root@node110 paramiko]# cat simple4.py #!/usr/bin/env pythonimport paramikoimport os,sys,timehostname="192.168.2.121"username="root"password="123456"blip="192.168.2.120"bluser="root"blpasswd="123456"tmpdir="/tmp"remotedir="/data"localpath="/home/nginx_access.
分类:自动化运维
2017年04月10日
实现堡垒机模式下的远程命令执行
摘要:[root@node110 paramiko]# cat simple3.py #!/usr/bin/env pythonimport paramikoimport os,sys,timehostname="192.168.2.121"username="root"password="123456"blip="192.168.2.120"bluser="root"blpasswd="123456"port=22passinfo='\'s password: 'paramiko.util.log_to_file('syslogin.log')ssh=paramiko
分类:自动化运维
2017年04月10日
通过密钥方式登录远程主机
摘要:[root@node110 paramiko]# cat simple2.py #!/usr/bin/env pythonimport paramikoimport oshostname='192.168.2.120'username='root'paramiko.util.log_to_file('syslogin.log')ssh=paramiko.SSHClient()ssh.load_system_host_keys()#privatekey = os.path.expanduser('/home/key/id_rsa')privatekey = os.path.expanduser('/root/.ssh/id_rsa')key = paramiko.RSAKey.fro
分类:自动化运维
2017年04月10日
SFTPclient
摘要:#!/usr/bin/env pythonimport paramikousername="root"password="123456"hostname="192.168.2.120"port=22try: t=paramiko.Transport((hostname,port)) t.connect(username=username,password=password) sftp=paramiko.SFTPClient.from_transport(t) sftp.put("/root/test.sql",
分类:自动化运维
2017年04月10日
登录远程SSH并返回执行结果SSHClient
摘要:[root@node110 paramiko]# cat simple1.py #!/usr/bin/env pythonimport paramikohostname='192.168.2.120'username='root'password='123456'paramiko.util.log_to_file('syslogin.log')ssh=paramiko.SSHClient()ssh.load_system_host_keys()ssh.connect(hostname=hostname,username=username,password=password)stdin,stdout,stderr=ssh.exec_command('free -m')print st
分类:自动化运维
2017年04月10日
pxssh
摘要:[root@node110 pexpect]# cat simple1-pxssh.py import pxsshimport getpasstry: s = pxssh.pxssh() hostname = raw_input('hostname: ') username = raw_input('username: ') password = getpass.getpass('password: ') s.login (hostname, username, password) s.sendline ('uptime') &
分类:自动化运维
2017年04月10日
before_after
摘要:[root@node110 pexpect]# cat simple9_before_after.py #1/usr/bin/env pythonimport pexpectimport syschild = pexpect.spawn('ssh root@192.168.198.121')fout = file('mylog.txt','w')child.logfile = foutchild.expect(["password:"])child.sendline("123456")print "before:"+child.beforeprint "after:"+child.after
分类:自动化运维
2017年04月10日
ssh自动登录
摘要:[root@node110 pexpect]# cat simple8_ssh_auto_login.py #!/usr/bin/env pythonimport pexpectimport syschild = pexpect.spawn('ssh root@192.168.198.121')fout = file('mylog.txt','w')child.logfile=foutchild.expect("password:")child.sendline("123456")child.expect("#")child.sendline("ls /home")child.expect("
分类:自动化运维
2017年04月10日
日志输出到终端
摘要:[root@node110 pexpect]# cat simple7-output-sys_stdout.py #!/usr/bin/env pythonimport pexpectimport sysshell_cmd='ls -l'child = pexpect.spawn('/bin/bash',['-c',shell_cmd])child.logfile=sys.stdoutchild.expect(pexpect.EOF)
分类:自动化运维
2017年04月10日
日志输出到文件
摘要:[root@node110 pexpect]# cat simple6-output-logfile.py #!/usr/bin/env pythonimport pexpectimport sysshell_cmd='ls -l'child = pexpect.spawn('/bin/bash',['-c',shell_cmd])fout = file('mylog.txt','w')child.logfile=fout#child.logfile=sys.stdoutchild.expect(pexpect.EOF)
分类:自动化运维
2017年04月10日
pexpect.EOF
摘要:[root@node110 pexpect]# cat simple4.py #!/usr/bin/env pythonimport pexpectchild = pexpect.spawn('/bin/bash -c "ls -l > logs.txt"')child.expect(pexpect.EOF) #匹配数据的最后,表示数据传输完成#!/usr/bin/env pythonimport pexpectshell_cmd='ls -l>logs1.txt'child = pexpect.spawn('/bin/bash',['-c',shell_cmd])child.expect(pexpect.EOF)