Que linguagem de programação para tarefas relacionadas ao servidor / scripts relacionados à implantação [fechados]

1

Estou realmente me sentindo um idiota, mas não encontro as palavras-chave de busca certas para obter algo útil do Google.

O problema: Estamos desenvolvendo aplicações symfony1 e symfony2 (php). Estamos desenvolvendo em máquinas Windows, enquanto nosso servidor de teste e produção são linux. Nós temos algumas tarefas que são feitas por um shell script no linux. Essas tarefas incluem: - Mover arquivos e pastas (por exemplo, arquivos de teste na pasta de teste) - Definir permissões de pasta - execute vários comandos

Neste momento, os scripts de shell são executados apenas nos servidores linux, pois não estão funcionando nas máquinas windows. Gostaríamos de chegar a um ponto em que podemos executar um script e, dependendo do ambiente, ele executa as tarefas corretas.

Qual idioma escolher para essas tarefas? Eu ouvi coisas boas sobre python, mas não sei se isso realmente se encaixa. Eu conheço alguns Perl, mas não acho que seja uma boa ferramenta. Talvez existam linguagens que são projetadas para tais problemas?

    
por Sgoettschkes 01.09.2011 / 01:20

3 respostas

3

Existem muitos idiomas de plataforma cruzada que funcionam para tarefas administrativas do sistema. Perl, Python e Ruby são todas opções válidas.

Mas essas linguagens não poderão traduzir automaticamente de forma mágica as coisas que só fazem sentido no Linux para o equivalente mais próximo do Windows. Definir permissões é diferente no Windows vs Linux. Você terá que detectar o sistema operacional e chamar as funções corretas apropriadas para esse sistema.

Which language to choose for this tasks?

Escolha uma linguagem multiplataforma com a qual você já esteja familiarizado. Se você não tem muita familiaridade com nenhum deles, escolha um que pareça legal.

Como você está desenvolvendo aplicativos PHP, você pode sempre instalar o PHP CLI em todos os lugares. Desde que você já está usando PHP você está familiarizado com isso. Enquanto muitos podem argumentar que o PHP é uma porcaria, você certamente pode fazer as coisas com ele, e você já o está usando.

    
por 01.09.2011 / 01:36
4

A boa resposta: Mude para o linux em seus desktops / laptops. Você deve estar desenvolvendo na mesma plataforma em que o aplicativo está sendo servido.

A resposta do Hack-it-juntos-e-talvez-meio-caminho: instale cygwin em suas máquinas de desenvolvimento e você poderá executar scripts de shell.

    
por 01.09.2011 / 01:33
3

Você está dizendo que o problema é que você está desenvolvendo no Windows, mas implantando no Linux, e tem scripts que você deseja executar em ambos? Acho que você vai descobrir que sempre há algumas peculiaridades, a menos que haja algum equivalente a # ifdef no script para descobrir se ele está sendo executado no Windows versus Linux, já que haverá diferenças na estrutura de diretório e tal. Existe uma razão pela qual você não pode desenvolver em um sistema Linux, ou virtualizar um sistema Linux na caixa do Windows, então você está desenvolvendo na mesma plataforma que está construindo?

Você pode fazer com que o Python para Windows seja executado nativamente. E se você estiver usando uma linguagem de script centrada em UNIX para fazer coisas (como o Bash), você pode instalar o cygwin no Windows para ter um ambiente POSIX no qual executar coisas.

Pessoalmente, eu virtualizaria um sistema Linux e salvaria algumas peculiaridades e dores de cabeça. Se você estiver solicitando scripts que são executados no CRON no servidor, instale o Cygwin e faça o script no Bash.

    
por 01.09.2011 / 01:36