SFTP to Nextcloud

Jul 16, 2024 13:59


Открываю рубрику "костылестроение".

Поступила очередная всратая задача (не спрашивайте где я их беру, приносят). Есть некий сервер с Nextcloud-ом. Некий другой сервер хочет складывать на него файлы по SFTP. Причем да, именно по SFTP и именно в качестве клиента. Нужно эти закачанные файлы переложить в правильную папку на Nextcloud-е и сделать так, ( Read more... )

ссылки, linux, it, костылестроение, bash

Leave a comment

Comments 16

cae32 July 16 2024, 11:17:46 UTC

В башестроение (равно как и в даше, то есть совсем-совсем посикс), исходя из опыта, я бы рекомендовал примерно следующий стиль:

command arg || exit 2

Ибо, допустим, доблестный find или ещё кто-то может отработать несколько не так. И лучше бы на этом всё. Чем идти дальше.

Я лично стараюсь ещё трапы писать, потому что сигналы тоже могут быть (TERM допустим), но это для текущих задач админа будет слишком дофига работы. Впрочем, можно копипастить.

Reply

dennis_chikin July 16 2024, 11:34:23 UTC
А если бы этот find еще и коды ошибок возвращал...

Reply

cae32 July 16 2024, 11:45:37 UTC

Там "всё сложно". Когда-то можно, когда-то нельзя. Тестирую обычно

Reply

klink0v July 16 2024, 11:51:50 UTC

Во-первых, такое можно один раз прописать в sha-bang наподобие
#!/bin/bash -e

Во-вторых, конкретно в данном примере с ненулевым кодом лучше не завершаться, иначе упадет сам lsyncd, чего мы явно не хотим.

В-третьих, последующие команды не особо зависят от результатов работы предыдущих. Поэтому даже если скрипт продолжит выполняться после фейла какой-то из них, ничего принципиально страшного не произойдет.

Reply


mindfactor July 16 2024, 11:26:06 UTC
>Спим 30 секунд на случай, если клиент захочет положить несколько файлов. Как всё загрузит, так и начнём шевелиться, а пока отдыхаем.

Спорное решение, можно быть нужно и так и эдак

Reply

dennis_chikin July 16 2024, 11:36:37 UTC
ну тады читать лог в рилтайме и ага.

Reply


kvazimoda24 July 16 2024, 12:11:31 UTC
А почему просто не примонтировать папку, куда кладут по SFTP файлы, в Некстклоуд как внешнее хранилище?

Reply

klink0v July 16 2024, 12:14:54 UTC

По условию задачи это должен быть некий "вечный" архив. SFTP-клиент точно ничего не станет раскладывать по папкам. А если всё сгружать в одно место, рано или поздно файловая система начнет дико тормозить. Плюс, заказчик пожелал, чтобы клиент мог только закачивать файлы, но не скачивать или удалять.

Reply

Хм-ммм... de_nada July 16 2024, 13:27:19 UTC

Поддержу ув.kvazimoda24 - внешнее хранилище предпочёл бы я.
Хотя почему "бы" - я у себя NC так и использую, как "форточку" до CIFS-шары.

А уж на сервере-носителе шары можно как угодно и чем захочется изгаляться по части перекладывания джейсонов файлов в любую потребную позу (одновременно убирая их из шары).

С пониманием.

p.s. Всерьёз раздумываю о "ротации" виртуалки с NC - чтобы в полночь она превращалась в тыкву ресторилась из "золотого образа" (ага, по схеме VDI или отката снапшота в СХД).
Тогда любые возможные проблемы с расколупыванием её "снаружи" автоматом купируются (понятно, что логи её lifecycle оттопыриваются в нычку и могут быть проинвестинированы "в случае чего").
Правда пока лень побеждает с разгромным счётом (я про суточную реинкарнацию виртуалки с NC).

Reply

kvazimoda24 July 16 2024, 14:30:10 UTC
Я подобное проворачивал через chroot у SSH сервера, плюс, с помощью pam'а запускал скрипт при завершении сессии.

Reply


Leave a comment

Up