Preciso de ajuda neste script que atenda estes comportamentos abaixo.

1. Preciso de ajuda neste script que atenda estes comportamentos abaixo.

Tiago Ribeiro Santos
tiglinux

(usa Linux Mint)

Enviado em 28/11/2015 - 18:01h

Olá galera,boa tarde!!

Conforme o professor da minha faculdade , solicitou ele pediu que fosse desenvolvido um script que atendida os seguintes requisitos :

1.Antes de fazer o backup remover todos os arquivos da pasta /var/tmp e de todas as sub-pastas;

2.Para cada pasta informada registrar dentro do arquivo de log os arquivos que tenham:
•Proprietário o usuário atual
•Tamanho maior que 1 KB
•Sido acessados a mais de 30 dias

3.Para cada pasta adicionada ao arquivo TAR registre no LOG quantos arquivos foram empacotados;

4.No final do processo inclua a execução de um comando SCP. Esse comando será responsável por fazer uma cópia extra do backup para um outro computador da sua rede. O endereço IP dele terá o mesmo prefixo (10.1.1.), porém o final do número será diferente em função do dia da semana. Caso seja domingo o final do endereço será 1, se for segunda-feira o final será 2 e assim sucessivamente até o sábado. Segue exemplo: scp ARQUIVO.TAR.GZ root@10.1.1.XXX:/backup . Deve ser utilizado a estrutura de condição CASO/CASE;

5.Cada uma das novas etapas irá gravar no arquivo de LOG uma linha indicando a data e hora em que começou e o nome da etapa. E a saída de erro dos novos comandos incluídos também devem ser direcionadas para o arquivo de LOG.

6.Crie um novo arquivo de LOG com a terminação .tmp.log sem as linhas que tiverem referência para a pasta /var/tmp




  


2. Shellscript (continuação do exercício)

Tiago Ribeiro Santos
tiglinux

(usa Linux Mint)

Enviado em 28/11/2015 - 18:06h

Conforme solicitado , eu desenvolvi o script mais ou menos assim , e gostaria de saber aonde estou errando pq quando eu executo ele fica esperando eu digitar algum caracter ou dado.

Código :

# PROGRAMA PARA FAZER BACKUP AUTOMATICAMENTE

#!/bin/bash

sim="SIM"
nao="NAO"
data=`date +%d/%m/%Y`
dia=$(date '+%A')
hora=`date +%H:%M`
lista_arquivos=$(ls *)
atual_prop=$(whoami)
tamanho_maior=$(du -hsk)
arquivos_trinta=$(ls * | find / -type f -mtime +30)




arquivo_backup="backup_DD_MM_AAAA.tar"



#Removendo pastas e subpastas

rm -rf /var/tmp

echo "Removi todas as pastas e arquivos no diretório /var/tmp ! \n"



echo "Seja bem vindo!"

echo "Deseja fazer o backup dos arquivos? [SIM ou NAO]"
read resposta



if [ "$resposta" == "$sim" ]; then

DIR_backup=/var/backup/
arquivo_log=/var/backup/backup_DD_MM_AAAA.log
mkdir $DIR_backup
chmod 0777 $DIR_backup
echo "INICIO : Diretório $DIR_backup criado com sucesso! $data $hora" >> $arquivo_log


elif [ "$resposta" == "$nao" ]; then

echo "Saindo do backup!" >> $arquivo_log || exit 0


else

echo "Digite sim ou não por favor!"
echo "ERRO!! $data $hora" >> $arquivo_log
exit 0

fi

# Comando para listar todas as pastas (for)

i=0


for i in $lista_arquivos;
do

if [ $atual_prop == $atual_prop] && [$lista_arquivos > 1 ] && [ $arquivos_trinta] then



# Enviar arquivo backup_DD_MM_AAAA.tar.gz para a pasta /var/backup

cp backup_DD_MM_AAAA.tar.gz /var/backup

echo "Arquivo backup_DD_MM_AAAA.tar.gz movido para /var/backup com sucesso! $data $hora" >> $arquivo_log

# Incluindo comando SCP para enviar cópia extra do backup para um outro computador da minha rede.
case $dia in
$dia ="Domingo") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.1:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.1 com sucesso!" >>$arquivo_log;;


$dia ="Segunda-Feira") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.2:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.2 com sucesso!" >>$arquivo_log;;


$dia ="Terça-Feira") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.3:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.3 com sucesso!" >>$arquivo_log;;

$dia ="Quarta-Feira") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.4:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.4 com sucesso!" >>$arquivo_log;;

$dia ="Quinta-Feira") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.5:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.5 com sucesso!" >>$arquivo_log;;

$dia ="Sexta-Feira") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.6:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.6 com sucesso!" >>$arquivo_log;;

$dia ="Sabádo") scp backup_DD_MM_AAAA.tar.gz root@10.1.1.7:/backup; echo "Arquivo backup_DD_MM_AAAA.tar.gz enviado para 10.1.1.7 com sucesso!" >> $arquivo_log;;


*) echo "O dia não é valido!";;

esac

DIR_tmp=/var/tmp/
arquivo_log=/var/backup/tmp.log
mkdir $DIR_tmp
chmod 0777 $DIR_tmp

# Descompactar arquivos na pasta de /var/backup

gzip -d backup_DD_MM_AAAA.tar.gz
tar -zxvf backup_DD_MM_AAAA.tar >> echo >> $arquivo_log

#Registrando no LOG quantos arquivos foram empacotados




echo "Arquivo descompactado com sucesso! $data $hora" >> $arquivo_log

echo "FIM: Backup feito em $data $hora"

echo "FIM : Backup feito em $data $hora" >> $arquivo_log

exit 0


# Cria arquivo compactado 'backup_DD_MM_AAAA.tar' e transforma em arquivo .gz

tar -zcf backup_DD_MM_AAAA.tar *
gzip -9 -v backup_DD_MM_AAAA.tar

echo "Arquivo backup_DD_MM_AAAA.tar.gz criado com sucesso! $data $hora" >> $arquivo_log

if [ ! -d $arquivo_backup]; then

echo "Arquivo compactado não foi criado!" >> $arquivo_log

exit 0


else

done

fi






3. RES:Preciso de ajuda neste script que atenda estes comportamentos abaixo.

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 28/11/2015 - 18:34h

Olá,
Que script muito extenso amigo, vamos tentar ajuda-lo
a principio tente mudar if [ $atual_prop == $atual_prop] && [$lista_arquivos > 1 ] && [ $arquivos_trinta] then

para essa forma
if [ "$atual_prop" == "$atual_prop" ] && [ $lista_arquivos > 1 ] && [ $arquivos_trinta]; then

---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


4. Re: Preciso de ajuda neste script que atenda estes comportamentos abaixo.

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 29/11/2015 - 13:00h

Dá uma olhada na linha que tem:

if [ "$resposta" == "$sim" ] e substitui if [ "$resposta" == "sim" ]. Aqui você está chamando uma variável de nome sim que não foi declarada e que é o conteúdo da variável resposta. Por isso que fica solicitando uma interação com que executa.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782


5. Re: Preciso de ajuda neste script que atenda estes comportamentos abaixo.

johnny borges
JohnnyB

(usa Fedora)

Enviado em 29/11/2015 - 14:42h

separa a parte do backup e faça via rsync, exemplo da logica
vc joga para uma pasta cria um script que verifica se tem algo na pasta e depois passa via rsync para o servidor de backup onde vc organiza ele por semana mês como você acha interessante, você pode ate colocar ele para te enviar um email com detalhes do backup, outra coisa o seu arquivo de log vai ficar grande, vc pode compactar ele uma vez por semana e arquivar.


6. Re: Preciso de ajuda neste script que atenda estes comportamentos abaixo.

Walmir Jr
py3in

(usa Ubuntu)

Enviado em 29/11/2015 - 16:48h


Desculpe o off, mas alguém que manja de comandos shell pode me ajudar ?

http://www.vivaolinux.com.br/topico/Python/Salvar-arquivo-texto-sem-a-primeira-linha






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts