Форум сайта python.su
EmattenИ что, ты это всё читаешь с экрана потом? Так что направь вывод с rsync в файл.
скрипт делает бэкап 12 Тб информации в мелких файлах на локальные диски и по сети через ssh. Благодаря тому, что rsync умеет отслеживать изменения перед копированием, это существенно ускоряет процесс и снижает расход трафика.
Офлайн
Ematten
Ни тот, ни другой вариант не работают
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, **other_popen_kwargs)¶
Run the command described by args. Wait for command to complete, then return the returncode attribute.
return_code = subprocess.call(rsync_command)
Офлайн
А что говорит библиотека на которую я давал ссылку?
Офлайн
py.user.next, не понял вопрос. Что читаю? Вывод rsync? Нет, обычно он в non-verbose режиме. Для дебага включил его. По поводу вывода в файл и проверки: решение хорошее, если только мелкие файлы, а если там большой файл и все это по сети идет со скоростью 100 Кб/сек, то лог файл может не изменятся десятками минут. Так что отпадает. Я другой метод пока использую. Проверяю через psutil наличие процессов rsync с общим путем источника. Если они есть в течение 2 секунд при запросах каждые 0,5 секунд, значит процесс еще идет.
xam1816, тоже не работает.
ZerG, не смотрел потроха, но это вроде как обертка над вызовом системного rsync. Тоже не работает.
Отредактировано Ematten (Май 13, 2023 01:27:19)
Офлайн
Богом клянусь ты делаешь что-то не так
Ситуация рядовая
Я 101 скрипт накатал для рсинка
И все пашет
У тебя рсинк выдает что0то свое так что предложение верное
лови процесс или месаджы от него и обрабатывай
Что-то не так в твоей системе
Офлайн
EmattenКороче, сделай внешний скрипт на Shell'е (это язык, который есть в Bash и других оболочках, которые соблюдают POSIX). Там используй программы ps, grep и так далее для отслеживания процессов. Там же запускай rsync. И вот скрипт на питоне просто запускает этот скрипт и снаружи подаёт в него пути что копировать, откуда копировать и куда копировать и всё. А дальше скрипт на питоне ждёт завершения этого чудесного скрипта, который и делает всю эту работу по обходу особенностей rsync'а. Таким образом всегда можно скрипту на питоне подать вообще другой скрипт, который тоже просто принимает пути, но в котором может вообще rsync'а не быть. Там может быть программа на Go, которая тоже так же берёт и сравнивает файлы, нужно ли их обновлять и может даже по сети копировать, но которая не форкает там ничего в системе и работает предсказуемо.
По поводу вывода в файл и проверки: решение хорошее, если только мелкие файлы, а если там большой файл и все это по сети идет со скоростью 100 Кб/сек, то лог файл может не изменятся десятками минут. Так что отпадает. Я другой метод пока использую. Проверяю через psutil наличие процессов rsync с общим путем источника. Если они есть в течение 2 секунд при запросах каждые 0,5 секунд, значит процесс еще идет.
Отредактировано py.user.next (Май 13, 2023 03:15:07)
Офлайн