Pular para o conteúdo principal

Tutorial: Script para criar uma pasta específica em todas as pastas de usuário /home

Ontem um amigo aqui do Gene que está dando um curso de banco de dados, precisava criar uma pasta chamada firebird em cada pasta de usuário. Dava mais ou menos umas 50 pastas. Ele ia fazer na mão coitado, daí fiz um script pra ele e funcionou, ele ficou feliz da vida.

Resolvi compartilhar com os leitores do blog. Espero que seja útil.  

Tutorial

Primeiramente precisamos obter todas as pastas de /home. Esta é a parte mais fácil, um comando ls resolve. Mas como percorrer estas pastas? Para isso podemos usar o comando for. Fica mais ou menos assim:
cd /home
for $arquivo in $(ls) 
do
done
 Em cada iteração do loop a variável arquivo é alimentada com o arquivo corrente. Agora precisamos saber se esse arquivo é realmente um diretório. Para isso podemos usar o comando test, assim:
if test -d $aquivo 
then
   
fi
A opção -d do comando test verifica se determinado arquivo é um diretório. Com isso conseguimos fazer o nosso script, que fica assim:

cd /home
for numero in $(ls) do
  if test -d $numero
  then
    mkdir $numero/firebird
    chown firebird $numero/firebird echo "Criado diretorio: $numero/firebird com permissão para firebird"
  fi
done

Legal né? E se a pasta firebird já existir em algum diretório? Blz, podemos resolver adicionando mais um if, assim:
cd /home
for numero in $(ls)
do
    if test -d $numero
    then
       if test ! -d $numero/firebird
       then
          mkdir $numero/firebird
          chown firebird $numero/firebird
          echo "Criado diretorio: $numero/firebird com permissão para firebird"
       fi
    fi
done
O ! no comando test serve como negação, o comando -d além de verificar se é um diretório serve pra gente saber se o diretório realmente existe. Bom essa foi a dica. Espero ter ajudado! T+

Comentários

Unknown disse…
oi
talvez queira dizer
---
cd /home
for arquivo in $(ls)
do
done
---
arquivo e não $arquivo

e talvez ainda:
---
cd /home
for arquivo in *
do
done
---

Postagens mais visitadas deste blog

Ubuntu + FreeTDS = SQL Server 2005 Conectado

Olá pessoal! Na ultima sexta-feira tive o imenso prazer de voltar a brincar na plataforma do pinguim. (Para quem não sabe fui um feliz sysadmin rodando Debian nos servidores e Ubuntu nas estações por 4 anos, depois de 6 meses usando Win Server nos servidores e WinXP nas estações pedi demição). Tarefa: Fazer com que uma aplicação rodando sob Apache 2.2 + PHP 5 se connect em um servidor SQLServer 2005 como seu SGBD padrão. Até aí tudo bem, pensei se ambos os servidores estiverem na internet ta resolvido, a conexão vai ser via http mesmo, sem stress, ao invéz de usar mysql/mysqli uso mssql e boas, não ha muito de diferente a fazer. Mas como sempre o manganal aqui se precipitiou no julgamento e descobriu que o SQL Server não estava disponível com um endereço http, como um estalo pensei "Vixe fudeu!". Bom, comecei a juntar pedaços do que eu precisava saber para fazer com que o Ubuntu se conectasse via rede diretamente em um servidor SQL Server, e nessa pesquisa descobri o ...

Criando um túnel via SSH

Eventualmente estamos em lugares onde precisamos acessar alguma página e sempre tem aquele proxy chato que não deixa acessar. Com tunelamento via ssh é possível acessar servidores externos sem se preocupar.  Este mecanismo pode ser uma boa quando se precisa de acesso seguro e ter a certeza que ele não será "sniffado" na rede. O mecanismo funciona da seguinte maneira: Estabelece-se um tunel entre a sua máquina e a máquina servidora Este túnel é feito utilizando algoritmos de chave pública e privada, garantindo total privacidade dos dados que trafegam por ali O que é necessário: Máquina servidora com SSH instalado e funcionando A máquina cliente com client SSH Mãos na massa: Vou partir do principio que você já tenha um servidor SSH instalado e funcionando. Há vários tutoriais na net que explicam como instalar. Eu por exemplo, uso o ubuntu e instalei usando o comando: apt-get install ssh. Configurando o cliente no linux: Abra o shell e digite o comando ssh <us...

A Importância do Fluxo de Caixa para Empresas de Rastreamento

O   fluxo de caixa   é uma ferramenta vital para a saúde financeira de qualquer   empresa de rastreamento . Ele representa a movimentação de dinheiro que entra e sai do negócio, proporcionando uma visão clara sobre a liquidez e a capacidade de honrar compromissos financeiros. Neste artigo, exploraremos a importância do fluxo de caixa especificamente para empresas de rastreamento e como ele pode impactar seu sucesso. O que você verá neste post: Visão Clara da Situação Financeira Planejamento e Tomada de DecisãoControle de Despesas Cumprimento de Obrigações Financeiras Identificação de Oportunidades de Crescimento Identificação de Oportunidades de Crescimento Prevenção de Crises Financeiras Atração de Investidores e Financiamentos Visão Clara da Situação Financeira Um fluxo de caixa bem gerenciado permite que empresas de rastreamento tenham uma visão clara da sua situação financeira. Saber quanto dinheiro está disponível para cobrir despesas operacionais, investir em novos ...