python多线程学习

#/usr/bin/python
#-*- coding: utf-8 -*-
import threading
import os,sys
#拷贝python脚本的函数
def cp_python_script(ip):
    #拷贝脚本的shell命令
    cp_cmd='scp /root/python/transfer/dxc_threading_shiyong.py root@%s:/root/python' %ip
    #判断拷贝的文件是否存在
    if not os.path.exists('/root/python/transfer/dxc_threading_shiyong.py'):
        print "python脚本文件不存在!"
        sys.exit()
    else:
        #如果拷贝文件成功则OK,不成功就退出程序。
        if os.system(cp_cmd)==0:
            print "ip:%s拷贝python文件成功!!!" %ip
        else:
            print "ip:%s拷贝python文件失败!!!" %ip
            sys.exit()
#登陆服务器函数
def login_server(ip):
    #通过ssh免登陆服务器,执行python脚本。
    login_cmd="ssh %s 'python /root/python/dxc_threading_shiyong.py'" %ip
    #如果执行成功则OK,不成功就退出程序。
    if os.system(login_cmd)==0:
        print "ip:%s执行python脚本成功!!!" %ip
    else:
        print "ip:%s拷贝python脚本失败!!!" %ip
        sys.exit()
#多线程调用python脚本函数
def dxc_call_cp():
    #建立一个列表供放ip
    cp_ip=[]
    #读取ip地址
    f=file('/root/python/transfer/ip.txt')
    for read_ip in f:
        ip_chuancan=read_ip.strip()
        #建立多线程
        ip=threading.Thread(target=cp_python_script,args=(ip_chuancan,))
        #添加线程到cp_ip列表
        cp_ip.append(ip)
    f.close()
    #统计调用python脚本函数的个数
    ip_sum=range(len(cp_ip))
    for line in ip_sum:
        #启动所有多线程
        cp_ip[line].start()
    for line in ip_sum:
        #等待多线程结束后,就结束进程。
        cp_ip[line].join()
#多线程调用login函数
def dxc_call_login():
    #建立一个列表供放ip
    cp_ip=[]
    #读取ip地址
    f=file('/root/python/transfer/ip.txt')
    for read_ip in f:
        ip_chuancan=read_ip.strip()
        #建立多线程
        ip=threading.Thread(target=login_server,args=(ip_chuancan,))
        #添加线程到cp_ip列表
        cp_ip.append(ip)
    f.close()
    #统计调用login函数的个数
    ip_sum=range(len(cp_ip))
    for line in ip_sum:
        #启动所有多线程
        cp_ip[line].start()
    for line in ip_sum:
        #等待多线程结束后,就结束进程。
        cp_ip[line].join()
if __name__=='__main__':
     #调用多线程dxc_call_cp函数
    dxc_call_cp()
     #调用多线程dxc_call_login函数
    dxc_call_login()

 

你可能感兴趣的:(python多线程学习)