Terminal "pede" sudo e interrompe o script

Iniciado por serena, 06 de Agosto de 2007, 15:43

tópico anterior - próximo tópico

serena

Olá!

Eu tenho um script para backup que tem isso:

...
# copiar a pasta /home para a partição de backup:
sudo cp -R /home /mnt/jhh/backup/home
# desmontar a partição de backup:
sudo umount /mnt
...


O problema é que o comando de cópia da pasta (cp) demora
muito para ser executado, porque são muitos arquivos a serem copiados; então o script "pára" antes de desmontar a partição (umount) e me pede a senha do super usuário (su) novamente.

É possível, de alguma forma, evitar esta interrupção e a necessidade de informar a senha novamente?

Antecipadamente agradeço pelas respostas!

Aqui rodo ubuntu 7.04.

alarcon

#1
Citação de: serena online 06 de Agosto de 2007, 15:43
Olá!

Eu tenho um script para backup que tem isso:

...
# copiar a pasta /home para a partição de backup:
sudo cp -R /home /mnt/jhh/backup/home
# desmontar a partição de backup:
sudo umount /mnt
...





O problema é que o comando de cópia da pasta (cp) demora
muito para ser executado, porque são muitos arquivos a serem copiados; então o script "pára" antes de desmontar a partição (umount) e me pede a senha do super usuário (su) novamente.

É possível, de alguma forma, evitar esta interrupção e a necessidade de informar a senha novamente?

Antecipadamente agradeço pelas respostas!

Aqui rodo ubuntu 7.04.

não seria melhor assim:

...
sudo mount /dev/jhh /media/jhh -w -t reiserfs
# copiar a pasta /home para a partição de backup:
sudo cp -R /home/ /media/jhh/backup/
# desmontar a partição de backup:
sudo umount /dev/jhh
...

onde jhh seria sua partição (hda? ou sda?), o local de montagem seria na pasta /media e não /mntreiserfs seria como sua partição está formatada (mude para ext3 caso seja esta forma) e para montar e desmontar tem de ser /dev/jhh e não /media/jhh

Outra coisa, não seria melhor você retirar o comando sudo da frente dos outros comandos, dentro do seu script, e não hora de executar o seu script apenas digitar:

sudo script

pois assim ele já vai executar como root, desde que o script tenha permissão de execução como root (sudo chmod +x script).


arlei

Olá serena.

Olha, como vc mesmo disse que são muitos arquivos a serem copiados fazer toda vez este processo realmente se torna muito demorado, então porque não fazer cópia apenas do que foi atualizado, ou seja, ao invés de fazer um backup full fazer apenas uma sincronização.

Para isso vc pode usar o rsync conforme mais ou menos o exemplo abaixo:

rsync -atogrv /home/* /mnt/jhh/backup/home

Onde:
-a -> Modo archive de sincronizacao
-t -> Preserva data/hora de modificacao dos arquivos
-o -> Preserva o Dono (owner) dos arquivos
-g -> Preserva o Grupo dos arquivos.
-v -> Modo verbose, exibindo maiores detalhes para arquivo de log
-r -> Recursivo

Consulte o manual do rsync para maiores detalhes, man rsync.

Apenas uma sugestão.

T+
Arlei

serena

Muito boas as sugestões, grata.

Agora pergunto se seria possível eu rodar este xcript sem ter se digitar sudo script no terminal, ou seja, é possível lançar isto através de um lançador?

alarcon

#4
Citação de: serena online 07 de Agosto de 2007, 15:16
Muito boas as sugestões, grata.

Agora pergunto se seria possível eu rodar este xcript sem ter se digitar sudo script no terminal, ou seja, é possível lançar isto através de um lançador?

Existe um programa gráfico para fazer backup, veja umas screenshots dele:





O nome do programa é SBackup e você pode instalar ele pelo automatix2 caso queira tentar usar algo gráfico, mas muitos aqui não recomendam usar o automatix2 (http://ubuntuforum-pt.org/index.php/topic,23530.0.html), eu uso e nunca tive problemas, mas...

arlei

Olá alarcon.

Eu já usei este programa, até tenho ainda instalado, mais confesso que não gostei muito e também não atendeu todas minhas necessidades. Mais ótima sugestão, acho que vale a pena dar uma conferida.

No Feisty, o pacote:
http://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=sbackup&searchon=names&subword=1&version=feisty&release=all

Para instalar (habilitar repositório universe):
sudo aptitude install sbackup

T+
Arlei

alarcon

Citação de: arlei online 07 de Agosto de 2007, 16:41
Olá alarcon.

Eu já usei este programa, até tenho ainda instalado, mais confesso que não gostei muito e também não atendeu todas minhas necessidades. Mais ótima sugestão, acho que vale a pena dar uma conferida.

No Feisty, o pacote:
http://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=sbackup&searchon=names&subword=1&version=feisty&release=all

Para instalar (habilitar repositório universe):
sudo aptitude install sbackup

T+
Arlei

Também usei pouco ele, mais no Ubuntu 6.06, aqui no Ubuntu 7.04 só tenho instalado. Fica aí a sugestão então. ;D

Floyd

Citação de: serena online 07 de Agosto de 2007, 15:16
Muito boas as sugestões, grata.

Agora pergunto se seria possível eu rodar este xcript sem ter se digitar sudo script no terminal, ou seja, é possível lançar isto através de um lançador?

Executá-lo através de um lançador eu não sei dizer...
Mas que tal adicionar uma linha no arquivo /etc/crontab chamando esse script? Ele seria executado sempre como root e é uma forma de automatizar a tarefa pois você poderia programar tal execução para determinado dia da semana ou horário.
Um exemplo de como poderia ficar:

0    4    25    *    *    root    /caminho/do/script/script_de_backup

Assim, seu script seria executado como root às 4 horas da manhã, sempre no dia 25 de qualquer mês do ano, em qualquer dia da semana.
Explicando:

0 - minutos
4 - hora
25 - dia do mês
* - mês (o asterisco aqui é usado caso não se deseje especificar um determinado mês)
* - dia da semana (idem acima)
root - o usuário que irá executar o script
/caminho/do/script/script_de_backup - o caminho onde se encontra o script


O arquivo /etc/crontab só pode ser editado pelo root, mas usuários comuns também podem usar o crontab.
Mais detalhes veja aqui: http://www.devin.com.br/eitch/crontab.

[]s.

Sentir-se bem é o que basta.