pythonマルチスレッドレプリケーションファイル同期
9258 ワード
最近1台の機械を通じて同時に複数のサーバーを管理することができることをしたいと思って、つまりマルチスレッド制御サーバー、sshを通じてapache、mysqlなどを管理することができて、そこで自分で1つのマルチスレッドの複製ファイルの同期をして、機能はとても完全ではありませんて、しかし基本的な機能は実現することができて、その他の管理も同様の道理で、みんなはどんな良い提案がありますご指導をお願いします.
以上はshellスクリプトで、expectでscpレプリケーションパスワードの自動入力機能を実現できます.フォーマット:./expect.sh[同期ファイル][IP][リモートに格納されているディレクトリ][リモートホストユーザ名][パスワード]、以下pythonコード
以下はpythonスクリプトの実行です.
以上の操作は簡単な同期操作を完成することができて、今度みんなにいくつか監視事件の自動同期スクリプトを書いて、ありがとうございます
本文は「遊造技術ブログ」のブログから、転載をお断りします!
- [root@localhost opt]# cat expect.sh
- expect -c "
- set timeout 1200;
- spawn /usr/bin/scp -r $1 $4@$2:$3
- expect {
- \"*yes/no*\" {send \"yes\r\"; exp_continue}
- \"*password*\" {send \"$5\r\";}
- }
- expect eof;"
以上はshellスクリプトで、expectでscpレプリケーションパスワードの自動入力機能を実現できます.フォーマット:./expect.sh[同期ファイル][IP][リモートに格納されているディレクトリ][リモートホストユーザ名][パスワード]、以下pythonコード
- [root@localhost opt]# cat d.py
- #-*- encoding=UTF-8 -*-
- import time
- import os
- import sys
- import threading as thread
- class Thread1(thread.Thread):
- def __init__(self):
- thread.Thread.__init__(self)
- self.lock = thread.RLock()
- self.flag = True
- self.count = 0
- def run(self):
- print 'scp '
- self.lock.acquire()
- os.system('sh expect.sh 1.txt 192.168.251.66 /home root redhat')
- self.lock.release()
- print ' '
-
- class Thread2(thread.Thread):
- def __init__(self,event):
- thread.Thread.__init__(self)
- self.event = event
- def run(self):
- self.event.wait()
- os.system('./expect.sh 1.txt 192.168.251.67 /home root redhat')
- self.event.clear()
- print ' '
-
- print ' '
- event = thread.Event()
- test1 = Thread1()
- test2 = Thread2(event)
- test1.start()
- test2.start()
- test1.join()
- event.set()
- test2.join()
- print ' '
- [root@localhost opt]# cat d.py
- #-*- encoding=UTF-8 -*-
- import time
- import os
- import sys
- import threading as thread
- class Thread1(thread.Thread):
- def __init__(self):
- thread.Thread.__init__(self)
- self.lock = thread.RLock()
- self.flag = True
- self.count = 0
- def run(self):
- print 'scp '
- self.lock.acquire()
- os.system('sh expect.sh 1.txt 192.168.251.66 /home root redhat')
- self.lock.release()
- print ' '
-
- class Thread2(thread.Thread):
- def __init__(self,event):
- thread.Thread.__init__(self)
- self.event = event
- def run(self):
- self.event.wait()
- os.system('./expect.sh 1.txt 192.168.251.67 /home root redhat')
- self.event.clear()
- print ' '
-
- print ' '
- event = thread.Event()
- test1 = Thread1()
- test2 = Thread2(event)
- test1.start()
- test2.start()
- test1.join()
- event.set()
- test2.join()
- print ' '
以下はpythonスクリプトの実行です.
- [root@localhost opt]# python d.py
-
- scp
- spawn /usr/bin/scp -r 1.txt [email protected]:/home
- [email protected]'s password:
- 1.txt 100% 0 0.0KB/s 00:00
-
- spawn /usr/bin/scp -r 1.txt [email protected]:/home
- [email protected]'s password:
- 1.txt 100% 0 0.0KB/s 00:00
-
-
以上の操作は簡単な同期操作を完成することができて、今度みんなにいくつか監視事件の自動同期スクリプトを書いて、ありがとうございます
本文は「遊造技術ブログ」のブログから、転載をお断りします!