最近项目有个需求,去固定的主机上获取一个文件,定时更新另外一台主机数据库上的数据。
现在将需求详细如下:
需求: 给定了主机 A 的IP ,用户名和密码,以及 A 上 文件的具体位置;
目的:要求读取A 主机文件中的信息,并将该信息更新到B主机上的数据库中。
分析:无法直接获取文件,并读取里面的内容,但如果能将A主机上的文件放到B 主机上来,一切都OK 了。
实现主要步骤有:
1. 编写获取文件的程序。
使用python语法实现:
import os
import paramiko
import time
HOST = '1.1.1.1'
USER = 'ddd'
PASSWD = 'aabs'
COMMAND = 'cat /data01/demo.xml'
FILENAME = '/home/data01/demo.xml'
def main():
ssh=paramiko.SSHClient();
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print 'Login......'
try:
ssh.connect(HOST, username=USER, password=PASSWD)
except paramiko.AuthenticationException:
print 'ERROR: check password......'
return
except:
print 'ERROR: ip unreachable......'
return
print 'Login success......'
while True:
stdin, stdout, stderr=ssh.exec_command(COMMAND)
output=open(FILENAME, 'w')
try:
output.write(stdout.read())
except IOError as error:
print 'ERROR: {0}......'.format(errno)
os.unlink(FILENAME)
else:
output.close()
print '*** Downloaded success......'
print 'Sleep 10 seconds......'
time.sleep(10)
return
if __name__ == '__main__':
main()
2.部署程序运行结果
省略 ...
3.获得文件中的信息,并更新数据库
省略 ...
4.到数据库中去查看,核对信息。
省略...
难点:python 语法,以及pyton 的写法获取文件。
详细文件的地址:http://download.csdn.net/detail/supingemail/7391177