Заключение вашего скрипта в блок {}
, вероятно, лучший вариант, но требует изменения ваших скриптов.
F=$(mktemp) && cp test.sh $F && bash $F; rm $F;
будет вторым лучшим вариантом (при условии, что tmpfs ) недостатком является то, что он сломает $ 0, если ваши скрипты используют это.
используя что-то вроде F = test.sh; хвост -n $ (кошка "$ F" | wc -l) "$ F" | bash
менее идеален, потому что он должен хранить весь файл в памяти и ломает $ 0.
Следует избегать прикосновения к исходному файлу, чтобы не нарушалось время последнего изменения, блокировки чтения и жесткие ссылки. таким образом вы можете оставить редактор открытым во время работы с файлом, и rsync не будет излишне проверять сумму файла для резервных копий и работать с жесткими ссылками, как ожидалось.
замена файла при редактировании будет работать, но менее надежна, потому что не может быть принудительно исполнена для других скриптов / пользователей / или кто-то может забыть. И снова это сломало бы жесткие ссылки.
sshfs
построен на ssh
, который, в свою очередь, использует TCP. Вы не можете переместить конечную точку с TCP-соединением и ожидать, что она выживет.
Вы могли бы наложить его поверх протокола на основе UDP, что может помочь с изменением IP-адреса, но это все равно не поможет с потерей подключения, замораживающей вашу точку монтирования.