(Python) Копировать файл с windows машины на linux машину

1. Алексей777 99 28.10.21 16:05 Сейчас в теме
Всем Привет!
Друзья, может кто сталкивался с подобным вопросом, подскажите, пожалуйста.
Есть такая задача перенести скриптом Python из системы windows в систему linux файл.

Буду очень благодарен скрипту на Python и в целом, Вашему опыту, получилось ли?

Спасибо!
По теме из базы знаний
Найденные решения
19. Алексей777 99 29.10.21 23:54 Сейчас в теме
Спасибо, Всем за образование )).
Получилось. Помогли статьи понять некоторые сущности:
https://habr.com/ru/post/150047/
http://python-lab.blogspot.com/2012/10/ssh-paramiko.html

С чем, также, столкнулся: доступ во внешнюю сеть был закрыт, поэтому пришлось взять машину у которой таких проблем нет и установить paramiko с помощью pip на неё, далее скопировал все установленные библиотеки на требуемую машину уже из site-packages - установил требуемые библиотеки вручную.

Рабочий код:
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.255.255.99', username='permyakov', password='password')

ftp = ssh.open_sftp()

remotepath = '/usr/etc/geofiles/Work.dbf'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.dbf'

ftp.put(localpath, remotepath)

remotepath = '/usr/etc/geofiles/Work.shp'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.shp'

ftp.put(localpath, remotepath)

remotepath = '/usr/etc/geofiles/Work.shx'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.shx'

ftp.put(localpath, remotepath)

ftp.close()

ssh.close()
Показать


Также, после выполнения столкнулся с ошибкой: PermissionError: [Errno 13] Permission denied: ...
Оказалось, что на файлы, которые я перезаписываю нет прав, команд chmod все решила.

Как-то, так :))
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sssss_aaaaa_2011 28.10.21 16:51 Сейчас в теме
(1)Винда с линухом как связаны? Кто к кому подключается и как?
8. Алексей777 99 29.10.21 11:55 Сейчас в теме
(2)В одной сети находятся.
12. sssss_aaaaa_2011 29.10.21 13:05 Сейчас в теме
(8)Прелестно... Очень информативно.
Протоколы межсетевого обмена напрочь игнорируют ос на компах сетей.
ОС может как-то влиять на передачу только внутри сети. Потому вас и спросили о "Винда с линухом как связаны? Кто к кому подключается и как?", а не про принадлежность к одной сети...
4. starik-2005 3166 29.10.21 01:49 Сейчас в теме
(1)
перенести скриптом Python из системы windows в систему linux файл
А зачем так сложно? Просто скопировать файл не составляет никакого труда:
from shutil import copyfile
copyfile(src, dst)
6. Алексей777 99 29.10.21 11:51 Сейчас в теме
(4)
from shutil import copyfile
Ознакомился с мануалом к данной библиотеке и не увидел, что она является кроссплатформенной.
11. XAKEP 29.10.21 12:45 Сейчас в теме
(6)
какой питон ?
Прикрепленные файлы:
13. sssss_aaaaa_2011 29.10.21 13:14 Сейчас в теме
(6)Думаете, для каждой ОС сделали разные библиотеки? И зачем вам кроссплатформенность всей библиотеки если нужна только одна функция из неё?
9. Алексей777 99 29.10.21 12:07 Сейчас в теме
(4)каталог на linux не расшарен.
10. starik-2005 3166 29.10.21 12:28 Сейчас в теме
(9) в принципе я бы, лично, сделал или через веб-сервисы, или через scp.
14. sssss_aaaaa_2011 29.10.21 13:15 Сейчас в теме
(9)А что и где расшарено? Или замапировано? Из вас всё клещами надо тянуть?
16. XAKEP 29.10.21 13:56 Сейчас в теме
(14)
всё клещами надо тянуть


совершенно секретно, что же вы не понимаете...

пора уже привыкнуть, что большая часть вопросов на форуме
предполагает, что у отвечающего -- образование телепата или вангиста :)
18. starik-2005 3166 29.10.21 16:40 Сейчас в теме
(16)
образование
Современное (и не только) образование сильно переоценено.
3. XAKEP 28.10.21 17:37 Сейчас в теме
5. user1326147 29.10.21 07:06 Сейчас в теме
Если на linux настроен ssh, а window- windows10, то просто скопировать:


D:\temp>scp arp.txt linuxUser@192.168.1.1:/home/linuxUser/
linuxUser@192.168.1.1's password:
arp.txt                                                                               100% 2300     1.1MB/s   00:00
7. Алексей777 99 29.10.21 11:53 Сейчас в теме
(5) :), windows не 10, к сожалению.
15. user1326147 29.10.21 13:17 Сейчас в теме
Если не win10 тогда, проще на linux развернуть службу либо FTP, либо SAMBA и скидывать файлы туда.
17. Алексей777 99 29.10.21 14:16 Сейчас в теме
Спасибо, Коллеги! Честно, помогает, без какого-либо сарказма и двойного смысла пишу. Спасибо, что откликнулись.
Я не совсем понял про вопрос как винда с линухом связаны, честно.
SAMBA, FTP - Заказчик исключил.
Секретов нет, да, понимаю, мы все не телепаты.
Пойду по пути scp или RPyC.
starik-2005; +1 Ответить
19. Алексей777 99 29.10.21 23:54 Сейчас в теме
Спасибо, Всем за образование )).
Получилось. Помогли статьи понять некоторые сущности:
https://habr.com/ru/post/150047/
http://python-lab.blogspot.com/2012/10/ssh-paramiko.html

С чем, также, столкнулся: доступ во внешнюю сеть был закрыт, поэтому пришлось взять машину у которой таких проблем нет и установить paramiko с помощью pip на неё, далее скопировал все установленные библиотеки на требуемую машину уже из site-packages - установил требуемые библиотеки вручную.

Рабочий код:
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.255.255.99', username='permyakov', password='password')

ftp = ssh.open_sftp()

remotepath = '/usr/etc/geofiles/Work.dbf'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.dbf'

ftp.put(localpath, remotepath)

remotepath = '/usr/etc/geofiles/Work.shp'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.shp'

ftp.put(localpath, remotepath)

remotepath = '/usr/etc/geofiles/Work.shx'
localpath = 'C:\\Users\\svc-app\\AppData\\Local\\Temp\\Paramico\\Work.shx'

ftp.put(localpath, remotepath)

ftp.close()

ssh.close()
Показать


Также, после выполнения столкнулся с ошибкой: PermissionError: [Errno 13] Permission denied: ...
Оказалось, что на файлы, которые я перезаписываю нет прав, команд chmod все решила.

Как-то, так :))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот