Где хранить внутреннее состояние программы?

Мне нужно написать программу или скрипт bash, который будет запускаться время от времени (на основе cron). Программа будет содержать конечный автомат и будет вести себя по-разному в зависимости от того, в каком состоянии она находится.

Программа (или скрипт bash) не зависит от пользователя, поэтому ее не должно быть в папке / home.

Где (по соглашению) хранить файл с внутренним состоянием программы на Ubuntu Server?

Дополнительный вопрос: какое место лучше всего подходит для самого скрипта?

3
задан 23 May 2017 в 15:13

3 ответа

Какое самое лучшее место для самого сценария?

Это может быть ...

/usr/local/bin/

Где (по соглашению) хранить файл с внутренним состоянием программы на сервере Ubuntu?

Я не думаю, что существует такое местоположение. Вы можете использовать /var/local/. Я видел несколько методов, и популярный, кажется, использует /opt/. Таким образом:

/opt/{software_name}/ 
/opt/{software_name}{.version_1}/
/opt/{software_name}{.version_2}/
...

где 1-й символическая ссылка на активную версию. И ./bin внутри этих каталогов для двоичных файлов, ./log для (повернутого) журнала и, в вашем случае, ./state с уникальным идентификатором или без него. И все настроено для пользователя root с разрешениями n00, чтобы никто не мог прочитать содержимое «state».

Проясняет, где вы можете найти все, что вам нужно.

0
ответ дан 23 May 2017 в 15:13

Я бы сделал папку для данных в /var/local/ и сохранил скрипт в /usr/local/bin/

0
ответ дан 23 May 2017 в 15:13

Если вы хотите, чтобы ваш скрипт был доступен для всех пользователей, поместите его в /usr/local/bin, это лучшее место для скриптов и программ, когда вы устанавливаете их вручную, тогда как другие места управляются менеджером пакетов. Если этот скрипт предназначен только для модераторов, он должен быть размещен в /usr/local/sbin.

Чтобы сохранить состояние вашего скрипта, вы должны учитывать, какой пользователь будет запускать скрипт? Вы запустите его, используя root в своем файле crontab? если это так, то, по моему мнению, вы должны сохранить состояние в домашнем каталоге пользователя root. Вы также можете рассмотреть возможность использования /tmp

0
ответ дан 23 May 2017 в 15:13

Другие вопросы по тегам:

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