Использование tee -a
для добавления к ряду файлов и раскрытие фигурной скобки.
Я также не думаю, что цикл на самом деле нужен, так как tee
выполняет работу по одновременной записи в несколько файлов.
cat <<-"EOF" | tee -a "$HOME"/public_html/*.{com,biz,co.il}/.htaccess
Apache_directive_set_1
Apache_directive_set_2
EOF
Строка
"$HOME"/public_html/*.{com,biz,co.il}/.htaccess
будет расширен до
/home/something/public_html/*.com/.htaccess /home/something/public_html/*.biz/.htaccess /home/something/public_html/*.co.il/.htaccess
и затем глобусы сделают свою работу, сопоставляя соответствующие подкаталоги.
Если существует риск того, что глобус может не соответствовать чему-либо, вам, вероятно, следует также установить параметр оболочки nullglob
вbash
:
shopt -s nullglob
Если этот параметр установлен, шаблон глобуса, который не соответствует ни одному существующему имени файла, будет расширен до пустой строки.
Если шаблон "$HOME"/public_html/*.{com,biz,co.il}/.htaccess
расширяется до слишком длинной строки, у вас могут возникнуть проблемы с запуском tee
. В этом случае вам нужна петля:
for dir in "$HOME"/public_html/*.{com,biz,co.il}/
do
cat <<-"EOF" >>"$dir/.htaccess"
Apache_directive_set_1
Apache_directive_set_2
EOF
done
Тем не менее, по-прежнему нет необходимости cd
заходить в каталоги.
Rsync — отличный инструмент, если вам нужно создать резервную копию некоторых файлов/каталогов -, в частности, если необходимо создать резервную копию многих больших файлов, которые редко изменяются (rsync будет передавать только те, которые изменились )]. Технически вы правы, большинство вещей в Linux хранятся в файловой системе. Резервная копия (, если она сделана правильно ), позволит вам восстановить установленное программное обеспечение, вашу конфигурацию, узлы устройств в /dev/
и т. д. Однако есть несколько потенциальных ловушек:
Файлы будут копироваться по одному -за -, поэтому в случаях, когда несколько файлов принадлежат друг другу, они могут оказаться не синхронизированными -из -. Пример :Вы запускаете фотогалерею на Raspi, и во время резервного копирования пользователь импортирует новые изображения, в результате чего изображения записываются в файловую систему, а некоторые записи записываются в отдельный файл базы данных. Если ваш каталог с изображениями будет скопирован в самом начале резервной копии, а база данных — в конце, вы можете получить резервную копию, в которой есть база данных, содержащая новые изображения, но отсутствуют соответствующие изображения. Это зависит от характера вашего программного обеспечения, если это может вызвать серьезные головные боли.
Некоторое программное обеспечение не гарантирует, что файлы на диске всегда находятся в согласованном состоянии. Другими словами, если вы создаете резервную копию файла во время его редактирования, возможно, вы создали резервную копию поврежденного файла. Скорее всего, вы будете в порядке, но безопаснее закрыть все файлы -для операционной системы, что означает ее закрытие. Если вы этого не сделаете, ваш пробег может измениться.
Вы должны убедиться, что ваша резервная копия работает правильно для всех забавных типов «файлов», которые использует система Linux. Например, вы можете обратить внимание на узлы устройств в /dev/
и псевдо -файловые системы в /proc/
и /sys/
и файлы, необходимые в процессе загрузки. Попробуйте выполнить восстановление на новую SD-карту, чтобы убедиться, что ваша резервная копия работает правильно.
Полная система Linux содержит массу файлов. Синхронизация их с другим компьютером означает чтение их всех, что может значительно замедлить работу Raspi.
Рассматривали ли вы комбинацию
dd
)и Таким образом, вы можете совместить душевное спокойствие, которое дает простое побитовое -на -побитовое резервное копирование, которое с меньшей вероятностью пойдет не так, с удобством частого автоматического резервного копирования наиболее важных файлов.