Postagens

Mostrando postagens com o rótulo ShellScript

Find, Casos de uso simples

Imagem
O comando find no linux é um dos melhores jeitos de você encontrar arquivos. Ele não é o único comando com essa proposta, mas acredito que é o melhor. Arrisco dizer que explorar os recursos desse comando, permite você encontrar qualquer coisa no sistema operacional. O que despertou interesse pelo comando find, foi uma demanda recente de apagar arquivos que tivessem data de acesso superior a 30 dias em alguns determinados paths. Em um primeiro momento pensei em como listar esses arquivos, até rascunhei algo utilizando: ls -lu, mas logo mudei o pensamento e entendi que não resolveria acessando os diretórios e listando os arquivos, mas sim encontrando eles de forma recursiva dentro dos diretórios especificados. Pois bem, ai que entra o find: find $1 -type f -atime +30 -delete > /var/log/`date +%Y-%m-%d`.deletei_esses_arquivos.log $1 = Corresponde a qualquer coisa que você digite apos chamar o script. Admitindo que o script se chama: apagar.sh, então quando você digita: s...

Apagar arquivos com mais de X dias

Imagem
  Considero este script muito simples e bastante útil. Tenho certeza que é possível escrever essas mesmas linhas de código de um jeito mais simplificado. O grande ponto para mim é a forma com a qual é possível ler e entender o que acontece. Tenho certeza que você já viu script por ai que mesmo lendo 10 vezes é necessário ir até o man de um ou outro comando e gastar um tempo. Em resumo o script verifica se o $storage está maior que $percent. Caso sim, ele busca por arquivos que sejam de $dias atrás e apaga!!! Caso contrario, ele exibe a porcentagem do $storage. #!/bin/bash #Variaveis storage="sda6" percent="71%" dias="+30" tempo="60m" while : do [[ `df -h |grep $storage |awk '{print $5}'` > $percent ]] && find ./ -type f -mtime $dias |xargs rm -rf || echo "Storage está em: "$percent sleep $tempo done Obs: Dependendo do lugar onde esse script for rodar, vai ser necessário executá-lo como ro...

Compartilhando 3G com Iptables

Imagem
Estou começando a achar que a "necessidade faz o nerd". Claro que é preciso ter um certo jeito para coisa, mas de um modo geral a ideia funciona. Recentemente tive a necessidade de compartilhar uma conexão 3G e esbarrei com um detalhe: Não estava utilizando Windows, alias, ponto para o Windows 7 dessa vez! Com meia duzias de cliques é possível fazer a mesma configuração que vou explicar abaixo. Já no Ubuntu 10.10 a coisa é um pouco mais detalhada, mais ele não fica para trás! também é possível fazer, veja como: Primeira coisa que fiz foi utilizar o iptables para fazer um NAT da conexão ppp0(geralmente o 3G) para o ip: 10.42.43.0/24. e depois criei uma conexão ad-hoc entre os netbooks. Configurando iptables: $ iptables -F FORWARD $ iptables -t nat -A POSTROUTING -s 10.42.43.0/24 -o ppp0 -j MASQUERADE $ iptables -A FORWARD -s 10.42.43.0/24 -o ppp0 -j ACCEPT $ iptables -A FORWARD -d 10.42.43.0/24 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT Po...