Pergunta

Em nosso projeto, escreve lotes de logs de aplicativo (às vezes eles são muito úteis) em tmp pasta .

Nesta pasta, temos diretórios dos componentes, tais como:

  • api
  • email2sms
  • scheduled_sending
  • faturamento
  • etc. Menos de 10 pastas, em resumo.

O problema: pasta novo componente surgem com o tempo -. cada uma destas pastas tem que ser gravável

Assim, é preciso tempo para cada desenvolvedor para chmod cada uma destas pastas em seus ambientes locais, é preciso tempo para chmod aqueles pasta na produção.

Como este problema pode ser resolvido? Como este processo pode ser automatizado? (Tarefa Apache Ant, propriedades SVN, roteiro do aplicativo - que tem que ser responsável para a tarefa)

Ambiente: ambientes de desenvolvimento - Ubuntu, Windows; produção - FreeBSD

Foi útil?

Solução

O método rápido e sujo que eu usei na maior parte das empresas que trabalham para era algo como isto:

  1. Coloque todo o código em um sistema de controle de versão (como SVN ou algo assim) para que todos os desenvolvedores têm uma única fonte dos arquivos. Você está, obviamente, já está fazendo isso. Hurrah!
  2. Coloque na raiz do mesmo código, um arquivo chamado setup_permissions.sh que atualiza todas as coisas ambiente local. Isso pode incluir permissões, ou o que você precisa executar.
  3. Todas as manhãs, todos os programadores fazer svn update, que atualiza os arquivos, e também o setup_permissions.sh.
  4. Eles tentam executar seu código. Veja um problema. Eles correm setup_permissions.sh.
  5. Tudo está bem no mundo!

Como para o conteúdo de setup_permissions.sh, poderia ser algo como:

#/bin/sh
TMP=/tmp

mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing

E adicionar mais comandos que você acha que precisa.
(Oh, e não use chmod 777 ... é uma idéia terrível. Basta ver este como um exemplo.)

A chave para esta abordagem é Disciplina . Você deve confiar em seus programadores para ter a disciplina para executar o setup_permissions.sh quando atualizar seus ambientes locais. O mesmo vale para quem atualiza o sistema de produção.

Você também deve ter a disciplina para atualização setup_permissions com as alterações feitas para a estrutura de diretórios, e qualquer mudança de permissão que ele precisa - em vez de apenas fazer as alterações manualmente em seu computador, e deixar por isso mesmo. (E o mesmo vale para todos os outros desenvolvedores que fazem alterações na estrutura de diretório.)

Outras dicas

o (programa / componente) que cria o log deve ser responsável para fazer os arquivos de log gravável para todos -. Para uso mod = 777 (todos gravável), quando os logs são criados

Se você implantar o processo tem um script de instalação, também fazer isso no script.

mkdir e chmod em um shell script simples deve ser suficiente.

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