Copiar subdiretório presente em vários diretórios

Publicado por Caio Henrique Oliveira Rodrigues (última atualização em 18/05/2015)

[ Hits: 2.946 ]

Download 6211.script




Essa dica de copiar subdiretório surgiu quando me pediram para enviar um relatório do ano inteiro especificando apenas um usuário.

O Sarg gera diariamente com todos os usuários, minha estrutura do Sarg é assim: /var/www/sarg/2015May14-2015May14/usuárioX/

Para não ter que entrar diretório por diretório para copiar os logs do usuárioX decidi criar esse script, que copia todos os logs apenas do usuárioX sem alterar a estrutura dos diretórios.

Já vi algumas pessoas com essa mesma necessidade.

Sou iniciante ainda no mundo Linux, se tiver alguma coisa que possa melhorar comentem aí, enfim, segue abaixo o script.

  



Esconder código-fonte

#!/bin/bash


USUARIO=usuarioX # especefica qual usuario ou ip você quer copiar os logs de acesso
TMP=/tmp/temp.txt
DIR=/tmp/listas
SARG=/var/www/sarg

# faz a busca de todos os diretórios que contem os dias acessados do usuário espeficiado e armazena no em um arquivo temporario
find $SARG -name $USUARIO -type d > $TMP

#Identifica quantas linhas o arquivo temporario possui para para que possa fazer estrutura de repetição
QTLINHA=$(wc -l $TMP | awk '{ print $1 }')
echo $QTLINHA #Mostra quantos subdiretórios serão copiados

a=1
#ira entrar dentro desse while e copiar o diretório correspondente, percorrendo linha por linha
while [ $a -lt $QTLINHA ];

do

COPIA=$(cat $TMP | head -n $a | tail -n 1) #Armazena o diretório a ser criado com a linha correspondente
mkdir -p $DIR$COPIA #Cria a estrutura de diretório corresponde a cada linha

#Entra e volta um nível de diretório para que nao duplique o subdiretorio
cd $DIR$COPIA
cd ..

#Copia a pasta do usuário especificado
cp -Rap $COPIA .
let a=$a+1

done #finaliza while

rm -Rf $TMP

Scripts recomendados

Testa se há conexão com a internet (Funciona)

Atualização automática de data e hora com ntpdate

Sysinfo - Informações sobre o seu computador

Localizar e excluir linhas repetidas em um arquivo texto

Configuração de rede no Virtualbox


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts