Почему этот простой сценарий bash разрушает мой компьютер?

Некоторые из ваших идей не сработают.

  • Cron работает только с минутным интервалом.
  • Предоставление файлов только для чтения не предотвращает их удаление.
  • Разрешение каталога только для чтения предотвращает удаление, но также и создание.
  • С другой стороны, размер файла не превышает cpвозможностей.

Лучшее решение — найти способ отключить удаление временных файлов.

Если это не сработает, лучше всего не копировать, а связать файлы. Если вы знаете каталог, в котором будут созданы файлы, используйте его во второй оболочке :

.
while true; do
    ln sourcedir/* targetdir &> /dev/null
done

Вы должны прекратить это после того, как закончите. sourcedirи targetdirдолжны находиться в одной файловой системе. это создаст жесткую ссылку для каждого файла. Когда он снова запустится, цель существует, поэтому будет отображаться сообщение об ошибке, поэтому перенаправление на /dev/null. Если файлы в источнике не удаляются очень быстро, все ваши файлы должны находиться в целевом каталоге.

Редактировать

Для ограниченного числа вложенных каталогов используйте

ln sourcedir/* sourcedir/*/* sourcedir/*/*/* targetdir &> /dev/null

Для произвольного уровня вложенности используйте find

find sourcedir -type f -exec ln --target-directory targetdir {} +
-1
31.05.2021, 18:06
1 ответ

Вы можете попробовать еще раз, только создайте каталог «mkdir -p /usr/local/lib/nodejs» и установите для LIBPATH значение «export LIBPATH=/usr/local/lib/nodejs/». Тем не менее, я настоятельно рекомендую вам прочитать, как установить nodejs в Linux, прежде чем нажимать на курок. См. " https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-via-binary-archive-on-linux", например -, который выполняет установку в "/usr/local/lib/nodejs". Единственная тяжелая работа, которую вам нужно сделать после создания каталога, - это загрузить двоичный файл и извлечь его в каталог. "/usr/local/lib/nodejs"

0
28.07.2021, 11:28

Теги

Похожие вопросы