Уход от com соединения. Как можно заменить для linux?

1. yurowski 33 26.04.22 15:29 Сейчас в теме
Всем привет.
Есть модуль в котором идет обращение к приложению
		sessionOptions = Новый COMОбъект("WinSCP.SessionOptions"); //Создаем объект SessionOptions
		sessionOptions.HostName = HostName;
		sessionOptions.UserName = UserName;
		sessionOptions.Password = Password;
		sessionOptions.SshHostKeyFingerprint = SshHostKeyFingerprint;
		
		session = Новый COMОбъект("WinSCP.Session"); //Создаем объект SessionOptions
		
		// Подключаемся
		session.Open(sessionOptions);
Показать


Как можно переписать данный вызов под Linux?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sssss_aaaaa_2011 26.04.22 15:33 Сейчас в теме
3. alex_bob 246 26.04.22 16:03 Сейчас в теме
Не знаешь как из Linux подключиться к удаленному хосту по ssh?
4. yurowski 33 26.04.22 16:09 Сейчас в теме
(3) нет. Только изучаю сам. Нужно часть наработок переписать для перехода. Вот сам сталкиваюсь с проблемами.
5. alex_bob 246 26.04.22 16:22 Сейчас в теме
А что нужно после подключения делать?
6. yurowski 33 26.04.22 16:25 Сейчас в теме
(5) задача работать с файлами через sFTP. Сервак был на Win, сейчас переводим на Linux. Com больше не работает. Теперь нужно как-то работать по Linux с sftp....
7. yurowski 33 26.04.22 16:26 Сейчас в теме
(5) переносить определенные файлы логов
9. starik-2005 3043 26.04.22 20:17 Сейчас в теме
(7) запили это на приличном языке программирования или сделай скрипт, который всегда можнго запустить, выполнив команду системы bash -c commandline. Для доступа к sftp есть
NAME
scp — OpenSSH secure file copy

SYNOPSIS
scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port] [-S program]
source ... target

DESCRIPTION
scp copies files between hosts on a network. It uses ssh(1) for data
transfer, and uses the same authentication and provides the same security
as ssh(1). scp will ask for passwords or passphrases if they are needed
for authentication.

The source and target may be specified as a local pathname, a remote host
with optional path in the form [user@]host:[path], or a URI in the form
scp://[user@]host[:port][/path]. Local file names can be made explicit
using absolute or relative pathnames to avoid scp treating file names
containing ‘:’ as host specifiers.
Показать
11. yurowski 33 04.05.22 16:19 Сейчас в теме
(9) для меня это пока темный лес... Не могли бы помочь?

Пока накидал такое. Похоже на правду?

#!/bin/sh
sshpass -p '12345' sftp user@10.10.10.10:/EXP/
get /EXP/ -r directory
quit
13. yurowski 33 05.05.22 10:32 Сейчас в теме
(9) подскажите пожалуйста, а как туда ещё передать SshHostKey? Не нашел ничего....
14. starik-2005 3043 05.05.22 10:41 Сейчас в теме
(13) https://linuxize.com/post/how-to-setup-passwordless-ssh-login/ - возможно поможет. SCP спасет отцов и матерей русской демократии (может быть).
8. alex_bob 246 26.04.22 16:57 Сейчас в теме
Если вкратце, я бы вместо использования 1с сделал скрипт на питоне. Есть библиотека paramiko, по синтаксису будет очень похоже.
starik-2005; +1 Ответить
12. yurowski 33 05.05.22 09:27 Сейчас в теме
(8) а как его подключить? Вот получилось написать такое, только как проверить в работе с 1с....
Очень нужна помощь. Первый опыт написания таких вещей и вызов их из 1с

#import functools
import paramiko
from io import StringIO 

class AllowAnythingPolicy(paramiko.MissingHostKeyPolicy):
    def missing_host_key(self, client, hostname, key):
        return

adress = '10.10.10.10'
username = 'CM'
password = 'PASS'
key = 'ssh-ed22211 222 21:4r:5y:7u:1s:55:96'
keyfile = StringIO(key)
# key = paramiko.RSAKey.from_private_key(keyfile)

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #AllowAnythingPolicy())
client.connect(adress, username = username, password = password, pkey = keyfile)

def my_callback(filename, bytes_so_far, bytes_total):
    print ('Transfer of %r is in progress' % filename) 

sftp = client.open_sftp()
sftp.chdir('/CM-CDR-EXP/')
for filename in sorted(sftp.listdir()):
    #if filename.startswith('Temat'):
        #callback_for_filename = functools.partial(my_callback, filename)
    sftp.get(filename, 'D:/') #callback=callback_for_filename)

client.close()
Показать
15. yurowski 33 11.05.22 11:35 Сейчас в теме
У меня выдает ошибку 127 при попытке запуска приложения

КомандаЗапускаСкрипта = timeout 10s /bin/bash '/tmp/v8_7UBmWF_11.sh' >> '/tmp/v8_7UBmWF_12.log'


127 - "команда не найдена" (Проблема связана либо с переменной окружения $PATH, либо с неверным написанием имени команды)

Не знаете в чем может быть дело?
Оставьте свое сообщение

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