Выполнение сценария оболочки через crontab

Да, это возможно, однако это приведет к тому, что накопитель будет заполняться намного быстрее, чем должен. Для файлов размером менее 512 КБ каждый файл будет занимать полные 4096 КБ (4 МБ) и заполнять остальную часть сектора нулями из-за невозможности для большинства файловых систем (NTFS и т. п.) разрешить файлам совместно использовать сектора. Наилучшим вариантом для файловой системы было бы разрешить переменные размеры секторов, однако это увеличивает размер MFT (главной файловой таблицы) и увеличивает риск повреждения данных, уменьшая возможность легкого восстановления данных. Другими словами, программа восстановления не будет полностью знать границы.Таким образом, хотя размер логического сектора 4096 КБ отлично подходит для больших файлов, для обычного ПК для повседневного использования это просто набор нулей. Теперь, с учетом сказанного, есть возможность хранить данные в самой MFT, когда речь идет о данных, меньших размера логического сектора. Это, однако, означает, что ваш MFT становится огромным, и данные будут записываться дважды (на вашем жестком диске есть две копии MFT). Вам также нужно будет указать максимальный размер MFT, который может вызвать проблемы, когда вы достигаете его максимума или использование диска превышает то, что было бы свободно для использования MFT. Все это основано на использовании файловой системы NTFS. С другой стороны, NTFS позволяет использовать собственное сжатие файлов на уровне блоков для любого логического сектора размером 4 МБ или меньше. Это ограничение применяется из-за того, как работает сжатие NTFS. Блоки размером 4 МБ считываются и сжимаются независимо от размера логического сектора. Это, конечно, не может произойти для чего-либо большего размера сектора, чем 4 МБ, из-за пересечения границ и потери данных.

Итак, это немного прояснило для вас ситуацию?

0
14.03.2016, 22:13
2 ответа

Задача cron запущена. Сценарий run-logger.sh находится и выполняется, иначе системный журнал укажет на это. Но вывод оттуда отправляется в ваш почтовый ящик, который сломан. Исправьте MTA, чтобы он отправлял вам почту (возможно, локально), чтобы вы могли видеть результат. В качестве альтернативы измените задание cron таким образом, чтобы выходные данные собирались в файл.

* * * * * /home/pi/apps/fritz-client/run-logger.sh &>/var/tmp/logger.out

Вам не нужен / 1 - он избыточен.

Измените ваш скрипт node-js так, чтобы он также регистрировал stderr:

/usr/bin/env node /home/pi/apps/fritz-client/index.js >> fritz.log 2>&1

Возможно, вы не можете писать в fritz.log . По умолчанию это домашний каталог пользователя. Кроме того, является ли pi пользователем задания cron?

1
28.01.2020, 02:27

Вы не должны использовать / usr / bin / env , он только ищет исполняемый файл узла через / bin и / usr / bin / . Укажите полный путь к исполняемому файлу узла .

В качестве альтернативы вы можете расширить PATH в вашем crontab:

PATH=$PATH:/usr/local/bin

и т. Д.

2
28.01.2020, 02:27

Теги

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