Сохранение результата между выполнением сценария

У меня есть скрипт в /opt который регулярно вызывается Cron. Сценарий должен писать и читать флаг состояния между выполнением. В каком каталоге я должен хранить флаг? Я думаю, что /tmp не может быть хорошим выбором, поскольку файл, содержащий флаг, не гарантируется сохранением между выполнением сценариев.

One Solution collect form web for “Сохранение результата между выполнением сценария”

Проверьте стандарт иерархии файловой системы, чтобы узнать, какие стандартные местоположения существуют в системе Linux.

Если вам нужно гарантировать сохранение файла между выполнением, то действительно /tmp не подходит. /tmp часто вытирается при перезагрузке, и обычно используется задание cron, которое удаляет старые нераскрытые файлы из /tmp .

/var/tmp обычно не удаляется автоматически. Он явно не должен быть уничтожен при перезагрузке. Это может быть приемлемым выбором; однако обратите внимание, что системный администратор может решить удалить этот каталог вручную, поэтому вы должны использовать его только в том случае, если у вас есть уверенность в том, что системный администратор узнает, что ваш файл не нужно удалять. Кроме того, /var/tmp является общедоступным (например, /tmp ), поэтому соблюдайте разрешения. В частности, обратите внимание, что если ваш скрипт еще не запущен, другой пользователь может создать файл по ожидаемому имени, а затем ваш скрипт будет работать с плохими данными.

Было бы лучше использовать локальное местоположение для пользователя, выполняющего сценарий. Если скрипт выполняется учетной записью пользователя пользователя, сохраните файл где-нибудь в домашнем каталоге пользователя (обычно это файл с точкой ). Если скрипт выполняется системной учетной записью, файл должен храниться где-то в каталоге /var , где файлы с изменяемыми файлами живут отдельно от файлов в /tmp . В частности, создайте каталог для своего скрипта в /var/lib и дайте ему соответствующие разрешения. Вариантом является создание каталога в /var/opt (соглашение об использовании /var/opt/PACKAGENAME/ вместо /var/lib/PACKAGENAME/ для переменных данных, принадлежащих к пакету, код и статические данные которого находятся в /var/opt/PACKAGENAME/ не всегда соблюдается).

  • Пакетное переименование "case duplicates"
  • Как проверить, существует ли один или оба из двух файлов?
  • Имя переменной массива Bash eval
  • «Interact» работает не так, как ожидалось, в сценариях bash / expect
  • Почему это сравнение не равно?
  • Составить имя файла внутри сценария ожидания
  • Запуск программы (команды) на терминале после экрана входа в Ubuntu 14.04
  • Скрипт Runlevel
  • Значение параметра не устраняется
  • Автоматизировать процедуру ввода двоичного файла
  • Добавить расширение ко всем файлам в каталоге, содержащем точную строку
  • Linux и Unix - лучшая ОС в мире.