Não consigo fazer este script rodar...

Shell scripts, Kommander, GUIs...

Moderador: Moderadores

ralmbat
Mini BIG
Mensagens: 2
Registrado em: 27 Nov 2010, 18:40

Não consigo fazer este script rodar...

Mensagem por ralmbat » 27 Nov 2010, 19:40

Prezados,

Eu tenho o seguinte exercício para resolver:

Sua empresa precisa realizar diariamente operações de backup sobre
vários arquivos importantes. Os arquivos a serem armazenados estão
em um diretório específico e espera-se que o arquivo de backup que
for gerado seja gravado em outro diretório especialmente designado
para esta função. A solução a ser desenvolvida apenas poderá ser
executada pelo usuário “backupuser”. Como isso pode ser feita de
forma automatizada de 24h em 24h sem termos que utilizar o crontab
do linux ?

Eu tentei fazer este exercício mas infelizmente o codigo está gerando os seguintes erros:

tar: Removing leading `/' from member names
tar: /home/ronaldo/Modelos/: Não é possível stat: Arquivo ou diretório não encontrado
tar: Exiting with failure status due to previous errors
Backup Finalizado Com Sucesso !!!!

Também não consigo fazer com que ele seja agendado para rodar de 24hs em 24hs. Segue o ódigo para sua apreciação:

echo "O backup do diretório será iniciado - Continuar: ?"
read resposta
test "$resposta" = "N" || test "$resposta" = "n" && exit
echo
echo "Digite seu nome de usuário:"
read entrada
if [ "$entrada" == "backupuser" ];then
DATA=`date +%Y-%m-%d-%H.%M`
tar -zcvf backup-"$DATA".tar.gz /home/ronaldo/Modelos/ #Esta é a pasta que está no meu perfil em /home
echo "Backup Finalizado Com Sucesso !!!!"
else
echo "Você não está autorizado a Realizar o Backup"
fi

Se alguém puder me ajudar com este código, ficarei agradecido.

Obrigado por sua ajuda e atenção,
Ronaldo.

Avatar do usuário
Jorgebadad
Big Moderador!
Mensagens: 4219
Registrado em: 23 Fev 2008, 17:17
Localização: Manaus-AM

Mensagem por Jorgebadad » 28 Nov 2010, 11:27

ralmbat;

Bem vindo ao fórum do Big Linux! 8)

Testei o seguinte script e deu certo...


#!/bin/bash
echo "O backup do diretório será iniciado - Continuar: ?"
read resposta
test "$resposta" = "N" || test "$resposta" = "n" && exit
echo
echo "Digite seu nome de usuário:"
read entrada
if [ "$entrada" == "jorge" ];then
DATA=`date +%Y-%m-%d-%H.%M`
tar -zcvf backup-"$DATA".tar.gz /home/jorge/Modelos/
#Esta é a pasta que está no meu perfil em /home
echo "Backup Finalizado Com Sucesso !!!!"
else
echo "Você não está autorizado a Realizar o Backup"
fi


Obs.: o primeiro caractere, #, faz parte do script!!, por isso vinha a mensagem de diretório não encontrado...

Ah sim, não esqueça de tornar executável (chmod -x) e de configurar as permissões (chmod -R)

Como agendar para rodar automaticamente de 24 em 24 horas não sei (ainda não cheguei nessa aula no meu estudo de shell-script!)
Linuxuser #506065
Netbook HP Pavilion dv2-1110us AMD Athlon Neo 64

Avatar do usuário
General
Mini BIG
Mensagens: 3
Registrado em: 17 Nov 2010, 11:17
Localização: Mogi Guaçu - SP

Mensagem por General » 28 Nov 2010, 21:31

Olá ... Tudo bem ?

Aproveite o script acima do colega Jorgebadad fazendo algumas alterações para torna-lo automático e não precise de sua interação quando executado, com o nome por ex: script_de_backup.sh
e use o script que postei abaixo para servir como gatilho para rodar o citado acima de forma permanente o backup
#!/bin/bash

# Escrito por General 28-11-2010

hora_atual=`date "+%H:%M"`
hora_backup=23:30 # aqui você coloca o horário que preferir para seu backup ser feito "exatamente neste formato" !

if [ "$hora_atual" = "$hora_backup" ] ; then
cd /home/$USER/pasta_onde_deve_estar_os_dois_scripts # pasta onde deve estar os dois scripts : script_de_backup.sh e gatilho.sh
./script_de_backup.sh # esse é o script que faz o backup
else
sleep 60 # timer para o programa checar hora de 60 em 60 segundos e evita o script entrar em looping instantâneo e travar o S.O.
./gatilho.sh & # script que checa a hora, a cada 60 segundos, para ver se é hora de fazer o backup
fi
Corrija no meu script o nome da pasta onde os scripts ficarão!

Para acionar o script gatilho.sh basta um clic .
Para para-lo quando quiser use o comando no terminal: killall gatilho.sh
O script para rente com esse comando.
Não esqueça de torna-los executáveis clicando com o direito do mouse e marcando a opção "É executável" em "propriedades, permissões" dos dois scripts!
Toda vez que reiniciar o PC precisará aciona-lo ou crie um link para ele na pasta de "auto-inicio" para ficar totalmente automático. No kde é /home/usuário/.kde/Autostart/
Boa sorte,

General

ralmbat
Mini BIG
Mensagens: 2
Registrado em: 27 Nov 2010, 18:40

Mensagem por ralmbat » 29 Nov 2010, 10:03

Muito obrigado por sua ajuda, General, este script foi de uma ajuda enorme para mim. Mais uma vez, obrigado por sua atenção e ajuda.

Avatar do usuário
General
Mini BIG
Mensagens: 3
Registrado em: 17 Nov 2010, 11:17
Localização: Mogi Guaçu - SP

Mensagem por General » 29 Nov 2010, 11:06

Olá ... Tudo bem ?

Precisando estamos aí !
Boa sorte,

General

Trancado

Voltar para “Scripts e Automações”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes