我正在编写一个每小时执行一次的脚本。它基本上可以作为:
- 读取数据文件(如果存在)。
- 如果数据文件具有某些内容,则执行操作。
- 改写或创建数据文件。
我将把脚本放在 Ubuntu 上的 /etc/cron.hourly/ 中,让它每小时执行一次。
存储数据文件的好地方是什么?该脚本以 root 身份运行。
首先,数据文件和 cron 作业都应该以您的应用程序命名。其次,如果我理解正确,您的数据正在由 cron 作业更改,而不是由人工编辑。因此,文件系统层次结构标准规定,如果应用程序被命名foo
,那么 cron 作业应该是/etc/cron.hourly/foo
,数据文件应该是/var/lib/foo
. 原因在于,/var/lib
给出的目的如下:
此层次结构保存与应用程序或系统有关的状态信息。状态信息是程序在运行时修改的数据,属于特定主机。用户永远不需要修改文件
/var/lib
来配置包的操作。
/opt
和/或/var
通常是这样做的好地方。显然从那里缩小范围。
如果是只读数据:
/usr/local/share/program_name
如果它是一个配置文件(或多个文件):
/usr/local/etc/program_name
除非它是非常具体的东西,应该进入 /var/spool、/var/run 或其他地方。还有/opt/XXX
学校...
如果是临时数据,那么 /tmp 或 /var/tmp 是标准目录。持久数据可以放置在文件系统中进程可以读取和写入的任何区域中。我通常在树中的某个位置创建一个“数据”目录,该目录的进程具有写入权限,例如 ~/data、/app/data 等。