Copiar subdiretório presente em vários diretórios
Publicado por Caio Henrique Oliveira Rodrigues (última atualização em 18/05/2015)
[ Hits: 3.285 ]
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.
#!/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
linkswitch (redundância de internet)
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
Script recolher log's servidor
Pra quem não usa WhatsUp e Nagios mas tem um *inx.
bookmaker.bash: Script para imprimir livros com 4 páginas em uma folha
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (16)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)
Instalação do cosmic no archlinux (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)









