Posizione dello script utente linux (debian etch) [chiuso]
Domanda
Nel file system di Linux, dove dovrebbero essere posizionati gli script utente?
Sto pensando specificamente agli script Python da chiamare da cron.
Soluzione
le informazioni che ho ottenuto:
/usr/local/sbin custom script meant for root
/usr/local/bin custom script meant for all users including non-root
frammenti del log della chat da 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.
i ringraziamenti vanno a Hydroxide
Altri suggerimenti
Se stai parlando di script creati da un utente che verranno eseguiti dal crontab di quell'utente, in genere li inserisco in una cartella bin o script nella directory home o, se sono destinati a essere condivisi tra utenti, un / directory usr/local/scripts.
Per chi interessa, il Standard di gerarchia del file system (FHS) è un documento standard ed è comunque un'ottima lettura.Descrive le basi di quasi tutte le distribuzioni Linux ed è ufficialmente approvato, ad es.di Debian e la Linux Standards Base (LSB).
Tuttavia non troverai alcuna risposta positiva a questa domanda, dal momento che...non è definito ;-).L'unica cosa che posso dire:Non inserire /bin (né in /usr/bin).Anche /usr/local/scripts è insolito.$HOME/bin sembra essere un posto accettabile, se e solo se lo script viene utilizzato solo da questo singolo utente.
Sono fermamente convinto che se un file viene creato da un utente, va nella sua directory utente (/home/nome utente), se non lo ha creato lui diventa più complicato.In passato li ho semplicemente inseriti in /usr/local/bin, /bin o /usr/local/scripts, non sono sicuro di etch, ma devi controllare per assicurarti che /usr/local/ script è in realtà nel $PATH di Cron.
IL Guida Debian può essere molto utile quando si tratta di Ubuntu:
Normalmente i programmi si installano nelle sottodirectory /usr/local.Ma i pacchetti Debian non devono utilizzare quella directory, poiché è riservata all'uso privato dell'amministratore di sistema (o dell'utente).
/usr/local/bin
sembra accettabile secondo la guida.
Personalmente ho inserito i miei script $HOME/.scripts
.
Vorrei però che LSB affrontasse specificamente questa domanda.
Che ne dici di /home/nome utente/bin?
Aggiungi ~/bin a $PATH e rendi lo script eseguibile con chmod +x nomefile.
personalmente preferisco
/home/username/.bin
In questo modo la cartella bin è nascosta ma puoi comunque aggiungerla al PERCORSO ed eseguire tutti gli script con x-bit all'interno.
Mi piace che la mia directory home sia pulita (a prima vista) con pochissime cartelle.
Puoi anche aggiungere percorsi al tuo file crontab come mostrato in a domanda precedente relativa a cron.