Linux ファイル システムでは、ユーザー スクリプトはどこに配置する必要がありますか?
具体的には、cronによって呼び出されるpythonスクリプトを考えています。
私が得た情報:
/usr/local/sbin custom script meant for root
/usr/local/bin custom script meant for all users including non-root
チャットログは irc.debian.org から抜粋 #debian:
(02:48:49) c33s: question: where is the _correct_ location, to put custom scripts
for the root user (like a script on a webserver for createing everything needed
for a new webuser)? is it /bin, /usr/local/bin,...? /usr/local/scripts is
mentioned in (*link to this page*)
(02:49:15) Hydroxide: c33s: typically /usr/local/sbin
(02:49:27) Hydroxide: c33s: no idea what /usr/local/scripts would be
(02:49:32) Hydroxide: it's nonstandard
(02:49:53) Hydroxide: if it's a custom script meant for all users including
non-root, then /usr/local/bin
(02:52:43) Hydroxide: c33s: Debian follows the Filesystem Hierarchy Standard,
with a very small number of exceptions, which is online in several formats at
http://www.pathname.com/fhs/ (also linked from http://www.debian.org/devel/ and
separately online at http://www.debian.org/doc/packaging-manuals/fhs/fhs-2.3.html)
(02:53:03) Hydroxide: c33s: if you have the debian-policy package installed, it's
also in several formats at /usr/share/doc/debian-policy/fhs/ on your system
(02:53:37) Hydroxide: c33s: most linux distributions follow that standard, though
usually less strictly and with more deviations than Debian.
水酸化物に感謝します
そのユーザーの crontab から実行されるユーザーによって作成されたスクリプトについて話している場合は、通常、それらをホーム ディレクトリの bin または scripts フォルダーに配置するか、ユーザー間で共有することを意図している場合は、/ usr/local/scripts ディレクトリ。
興味のある人にとっては、Filesystem Hierarchy Standard (FHS)は標準文書であり、今でも非常に読みやすいものです。私はほぼすべての Linux ディストリビューションの基盤について説明しており、Debianや Linux Standards Base (LSB) などによって公式に承認されています。
ただし、...定義されていないため、その質問に対する肯定的な答えは見つかりません;-)。私が言える唯一のことは、/bin に入れないでください (/usr/bin にも入れないでください)。/usr/local/scripts も珍しいです。$HOME/bin は、スクリプトがこの単一のユーザーによってのみ使用される場合、許容される場所のようです。
私は、ファイルがユーザーによって作成された場合、作成されなかった場合はユーザーディレクトリ (/home/username) に保存され、さらに複雑になると強く信じています。私は過去にそれらを /usr/local/bin、/bin、または /usr/local/scripts のいずれかに配置したことがあります。etch についてはわかりませんが、/usr/local/ scripts は実際には Cron の $PATH にあります。
Debian ガイドは、Ubuntu に関しては非常に役立ちます。
通常、プログラムは /usr/local サブディレクトリにインストールされます。ただし、システム管理者 (またはユーザー) の個人的な使用のために予約されているため、Debian パッケージはそのディレクトリを使用してはなりません。
/usr/local/bin
ガイドによると、受け入れられるようです。
個人的には、スクリプトを に入れました$HOME/.scripts
。
ただし、LSBがこの質問に具体的に対処してくれることを願っています。
個人的には好きです
/home/username/.bin
このようにして、binフォルダーは非表示になりますが、それをPATHに追加して、xビットを内部に持つすべてのスクリプトを実行できます。
私は自分のホームディレクトリが(一見)非常に少ないフォルダできれいになっているのが好きです。
/home/username/bin はどうですか?
~/bin を $PATH に追加し、chmod +x filename でスクリプトを実行可能にします。
以前の cron 関連の質問に示されているように、crontab ファイルにパスを追加することもできます。