Pergunta

No sistema de arquivos Linux, onde os scripts do usuário devem ser colocados?

Estou pensando especificamente em scripts python a serem chamados pelo cron.

Foi útil?

Solução

as informações que obtive:

/usr/local/sbin     custom script meant for root
/usr/local/bin      custom script meant for all users including non-root

recortes de chatlog de 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.

agradecimentos vão para Hydroxide

Outras dicas

Se você está falando sobre scripts criados por um usuário que serão executados a partir do crontab desse usuário, normalmente os coloco em uma pasta bin ou de scripts no diretório inicial, ou se eles se destinam a ser compartilhados entre usuários, um / diretório usr/local/scripts.

Para quem interessa, o Padrão de hierarquia do sistema de arquivos (FHS) é um documento de padrões e ainda é uma leitura muito boa.Descrevo a base para quase todas as distribuições Linux e é oficialmente endossado, por exemplo.por Debian e a Base de Padrões Linux (LSB).

Você não encontrará nenhuma resposta positiva para essa pergunta, já que ...não está definido ;-).A única coisa que posso dizer:Não coloque /bin (nem em /usr/bin)./usr/local/scripts também é incomum.$HOME/bin parece ser um local aceitável, se o script for usado apenas por este único usuário.

Acredito firmemente que, se um arquivo for criado por um usuário, ele irá para o diretório do usuário (/home/nomedeusuário). Se ele não o tiver criado, ficará mais complicado.No passado, apenas os coloquei em /usr/local/bin, /bin ou /usr/local/scripts, não tenho certeza sobre o etch, mas você precisa verificar se /usr/local/ scripts está na verdade no $PATH do Cron.

O Guia Debian pode ser bastante útil quando se trata do Ubuntu:

Normalmente, os programas se instalam nos subdiretórios /usr/local.Porém, os pacotes Debian não devem usar esse diretório, pois ele é reservado para uso privado do administrador do sistema (ou usuário).

/usr/local/bin parece ser aceitável de acordo com o guia.

Pessoalmente, coloquei meus scripts $HOME/.scripts.

Gostaria que a LSB abordasse especificamente esta questão.

Que tal /home/nomedeusuário/bin?

Adicione ~/bin a $PATH e torne o script executável com chmod +x filename.

pessoalmente eu prefiro

/home/username/.bin

Dessa forma, a pasta bin fica oculta, mas você ainda pode adicioná-la ao PATH e executar todos os scripts com o x-bit dentro.

Gosto que meu diretório inicial seja limpo (à primeira vista) com poucas pastas.

Você também pode adicionar caminhos ao seu arquivo crontab, conforme mostrado em um pergunta anterior relacionada ao cron.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top