#python
#python
Вопрос:
Я пытаюсь переместить файл журнала с компьютера, на котором выполняется операция, на другой компьютер, который получит файл журнала и обработает его, вернув документ с результатом анализа.
Я использую Python для работы, но я открыт для других вариантов (я должен запустить эту копию через консоль в OSX, из-за того, что большая часть моей работы выполняется в сценариях оболочки; поэтому не могу использовать какое-либо визуальное решение; все, что можно запустить с помощью скрипта, тоже будет работать); любое предложение более чем приветствуется, поскольку у меня на самом деле нет любимого способа сделать это (просто пытаюсь сделать менее проблематичным….Мне не нужно никакого шифрования безопасности, поскольку оба компьютера находятся в моей внутренней сети, связь с внешним не выполняется).
Надеюсь, что кто-нибудь сможет указать мне правильное решение, заранее спасибо.
Комментарии:
1. en.wikipedia.org/wiki/Secure_copy
2. Я знаю об SCP, но для этого требуется SSH-соединение, и я хочу просто скопировать файл без аутентификации.
3. Я бы просто сделал
ssh-copy-id
первый, чтобы обойти аутентификацию.
Ответ №1:
Я использую это все время дома, поэтому мне не нужно постоянно запускать демоны общего доступа к файлам:
python -m SimpleHTTPServer
На клиентском компьютере используйте браузер или wget.
На самом деле я использую его так часто, что создал этот скрипт, который также печатает IP-адрес с именем serv
. Не стесняйтесь использовать его в соответствии с вашими потребностями. Просто cd в папку и 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 'x08x08Killed'
Комментарии:
1. Интересное решение; Я попробую, даже если это кажется немного более сложным, чем то, что я имел в виду 🙂
2. Первая строка настолько проста, насколько это возможно.
Ответ №2:
NFS монтирует файловую систему, затем обе системы могут обращаться к тем же файлам, как если бы они были локальными. В противном случае вы могли бы использовать сокеты.
Комментарии:
1. Хороший момент; установка общего каталога на одной машине позволяет мне использовать стандартный cp; спасибо за предложение!