Надеюсь, вы попали куда-нибудь со своим списком.Вы уверены, что команды property
не задокументированы в этой версии? В этом ответе предлагается использовать команду типа btrfs property set -ts /path/to/snapshot ro true
, чтобы исправить проблему.
Для будущих читателей: установите для новых моментальных снимков доступ только для чтения с параметром -r
при их создании. Я использую что-то вроде этого в своем сценарии:
comm -23 \
<(btrfs subvolume list -ors --sort=path /fsA/ | perl -ne 'print if s/.+?\spath\s+(.+)/\1/') \
<(btrfs subvolume list -ors --sort=path /fsB/ | perl -ne 'print if s/.+?\spath\s+(.+)/\1/')
Это должно предоставить список доступных только для чтения томов моментальных снимков в файловой системе A, которые не в файловой системе В. Вы можете перебирать список, выполняя отправку/получение для каждого из них для синхронизации.
То, что вы разместили, не является сценарием bash , это сценарий, который будет выполняться какой-то неопределенной оболочкой. Сценарий оболочки всегда должен начинаться со строки shebang .Сценарий bash должен начинаться с #! / Usr / bin / env bash
или #!
, за которым следует путь к bash в вашей системе, обычно #! / Bin / bash
.
Я не рассматривал ваш сценарий подробно, но есть вероятность, что он дает сбой, потому что вы используете конструкции bash, но встроенные установки Linux, такие как DD-wrt, обычно не включают bash, только BusyBox ash. Чтобы ваш скрипт работал с DD-wrt, придерживайтесь переносимых конструкций sh. Вы можете использовать контрольные комбинации (доступны в большинстве дистрибутивов Linux) для поиска конструкций, специфичных для bash.
Я заметил одну специфичную для bash конструкцию - это оператор ==
в условных выражениях, например ["$ HOST" == ""]
. Переносимый способ записать это - ["$ HOST" = ""]
или [-z "$ HOST"]
. Аналогично ["$ MAC" = "$ MACTEMP"]
.
Также всегда заключайте замену переменных в двойные кавычки, если вы не знаете, почему вам нужно их опускать . Ваш сценарий может сработать, если ваши данные никогда не содержат специальных символов оболочки, но не рассчитывайте на удачу, просто введите эти "
.