Хорошее место для чтения и записи данных, используемых скриптом cron? - PullRequest
1 голос
/ 16 мая 2009

Я пишу сценарий, который должен выполняться ежечасно. Это в основном работает как:

  1. Считайте файл данных, если он существует.
  2. Выполнить действие, если файл данных имеет определенное содержимое.
  3. Перезаписать или создать файл данных.

Я помещу скрипт в /etc/cron.hourly/ в Ubuntu, который будет запускать его раз в час.

Что было бы хорошим местом для хранения файла данных? Скрипт запускается от имени пользователя root.

Ответы [ 5 ]

4 голосов
/ 16 мая 2009

Во-первых, как файл данных, так и задание cron должны быть названы в честь вашего приложения. Во-вторых, если я правильно понимаю, ваши данные изменяются заданием cron и не редактируются человеком. Поэтому Стандарт Иерархии Файловых Систем говорит, что если приложение имеет имя foo, то задание cron должно быть /etc/cron.hourly/foo, а файл данных должен быть /var/lib/foo. Причина в том, что цель /var/lib задается следующим образом:

Эта иерархия содержит информацию о состоянии, относящуюся к приложению или системе. Информация о состоянии - это данные, которые программы изменяют во время работы и которые относятся к одному конкретному хосту. Пользователям никогда не нужно изменять файлы в /var/lib для настройки работы пакета.

2 голосов
/ 16 мая 2009

/opt и / или /var, как правило, хорошие места для этого. Очевидно, сузить его оттуда.

1 голос
/ 16 мая 2009

Подкаталог /var является правильным местом для данных, которые будут прочитаны и изменены системой. См. Стандарт иерархии файловой системы для получения дополнительной информации.

0 голосов
/ 16 мая 2009

Если это переходные данные, то / tmp или / var / tmp являются стандартными каталогами. Постоянные данные могут быть помещены в любую область в файловой системе, из которой процесс может читать и записывать. Обычно я создаю каталог «data» где-нибудь в дереве, где процесс имеет права на запись, такие как ~ / data, / app / data и т. Д.

0 голосов
/ 16 мая 2009

Если данные доступны только для чтения:

/usr/local/share/program_name

Если это файл конфигурации (или файлы):

/usr/local/etc/program_name

Если это не что-то очень конкретное, оно должно быть в / var / spool, / var / run или где-то еще. Есть также школа /opt/XXX ...

...