Copiar subdiretório presente em vários diretórios
Publicado por Caio Henrique Oliveira Rodrigues (última atualização em 18/05/2015)
[ Hits: 3.076 ]
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
Script para modificar Encoding de UTF-8 para ISO-8859-1
Impedir duas ou mais conexões por usuário
NetScan - o seu scanner de rede!
Alteração de Senha do Mysql (sem saber a senha anterior).
Nenhum comentário foi encontrado.
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux
Como instalar protetores de tela (Debian e derivados)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Driver de rede realtek 8821ce bugado (1)
Problemas de compartilhame... de impressora no Ubuntu 24.04 (3)