Нет, в этом нет необходимости. Раньше я отключал его в большинстве систем.
Однако это может быть полезно. Linux mdadm RAID будет обнаруживать только ошибки, возникающие во время чтения или записи файловой системы RAID. Это задание cron проверки рейда mdadm просто вызывает чтение всего массива raid, чтобы можно было обнаружить ошибки чтения.
Подобным образом и btrfs
, и zfs
имеют команду scrub
, которая заставляет считывать все данные на них .... и чтение данных в этих файловых системах приводит к проверке контрольных сумм, таким образом обнаруживая любые ошибки даже в файлах, к которым нечасто обращаются. zfs scrub
или btrfs scrub
обычно запускаются из cron еженедельно или ежемесячно.
Я предполагаю, что вы хотите добавить к .htaccess
во всех каталогах, таких как $HOME/public_html/foo.com/
, $HOME/public_html/bar.biz/
и т. д.
Ваш цикл for
уже управляет обработкой всех каталогов, тогда вопрос заключается в том, чтобы просто настроить glob, чтобы он соответствовал требуемым окончаниям:
for dir in "$HOME"/public_html/*.{com,biz,co.il}/; do
cat <<-"EOF" >> "$dir"/.htaccess
Apache directives...
...
EOF
done 2>myErrors.txt
Похоже, cd
не нужен, так как dir
уже содержит полный путь к каталогу.
Приведенное выше, конечно, будет соответствовать только перечисленным доменам верхнего -уровня. (Я не уверен, что вы этого хотите, поскольку вы написали «или другие ДВУ».)Если вам все равно, какой TLD находится в имени каталога, просто используйте .../public_html/*/
или .../public_html/*.*/
, хотя это все равно предполагает, что там больше ничего нет. (Но с другой стороны, перечисление всех TLD несколько неудобно, и они могут придумать больше...)
Использование 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
заходить в каталоги.