如何在网络中用Python在两台计算机间复制文件
我想把一个日志文件从一台电脑上移动到另一台电脑上。第一台电脑上会进行一些操作,生成这个日志文件;第二台电脑会接收这个日志文件并处理它,最后返回一个分析结果的文档。
我现在用的是Python来完成这个任务,但我也愿意尝试其他方法(因为我大部分工作都是在OSX的命令行中进行的,所以不能使用任何可视化的解决方案;只要能通过脚本启动的方式都可以)。我对这个事情没有特别偏好的做法,只是想找个问题少的办法……而且因为这两台电脑都在我的内部网络里,所以我不需要任何安全加密,外部没有任何通信。
希望有人能给我指个明路,提前谢谢大家。
2 个回答
3
我在家里经常用这个,这样就不用一直让文件共享程序在后台运行了:
python -m SimpleHTTPServer
在客户端电脑上,可以用浏览器或者wget来操作。
其实我用得太频繁了,所以我写了一个脚本,除了可以打印出IP地址,还叫做 serv
。你可以根据自己的需要随意修改它。只需进入一个文件夹,然后运行 serv
就可以了。
#!/usr/bin/env python
import subprocess as sub
import BaseHTTPServer
import SimpleHTTPServer as httpd
# override this method to speed up connection
def _bare_address_string(self):
host, port = self.client_address[:2]
return '%s' % host
BaseHTTPServer.BaseHTTPRequestHandler.address_string = _bare_address_string
# get ip address and print
info = sub.Popen('/sbin/ifconfig', stdout=sub.PIPE).communicate()[0]
tokens = []
for line in info.split('\n'):
if 'inet' in line:
if '127.0.0.1' not in line:
tokens = line.split()
print
print ' ', tokens[1].replace(':', ': '), '\n ',
# start server
try:
httpd.test()
except KeyboardInterrupt:
print '\x08\x08Killed'
1
NFS(网络文件系统)可以把文件系统挂载到另一台电脑上,这样两台电脑就可以像在自己本地一样访问同样的文件。如果不使用NFS,你也可以选择使用套接字来进行通信。