程序内部状态存储在哪里?

程序内部状态存储在哪里?

我需要编写一个程序或 bash 脚本,它会不时运行(基于 cron)。该程序将包含一个状态机,并且会根据所处的状态做出不同的行为。

该程序(或 bash 脚本)不是特定于用户的,因此它不应该位于 /home 文件夹中。

按照惯例,在 Ubuntu Server 上将程序内部状态的文件存储在哪里?

附加问题:脚本本身的最佳放置位置是哪里?

答案1

脚本本身的最佳放置位置是哪里?

那可能是……

/usr/local/bin/

按照惯例,在 Ubuntu Server 上将程序内部状态的文件存储在哪里?

我认为没有这样的位置。您可以使用/var/local/。我见过几种方法,其中一种流行的方法似乎是使用/opt/。以这种方式:

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

其中第一个是指向活动版本的符号链接。./bin这些目录中有一个用于存放二进制文件的目录,一个./log用于存放(轮换的)日志的目录,以及一个(在您的情况下)./state带有或不带有唯一标识符的目录。所有目录均设置为具有权限的 root 用户,n00因此没有人可以读取“state”的内容。

让您清楚地知道在哪里可以找到您需要的任何东西。

答案2

我会创建一个文件夹来存放数据,/var/local/并将脚本存储在其中/usr/local/bin/

答案3

如果您希望所有用户都可以使用您的脚本,则应将其放在/usr/local/bin,这是手动安装脚本和程序时的最佳位置,而其他地方则由包管理器管理。如果此脚本仅供版主使用,则应将其放在/usr/local/sbin

要保存脚本的状态,您应该考虑哪个用户将运行该脚本?您会在文件root中使用脚本来运行它crontab吗?如果是这种情况,那么我认为您应该将状态保存在 root 的主目录中。您还可以考虑使用/tmp

相关内容