Introdução a scripts de shell com aplicativo básico: como configuro meu computador para criar um arquivo de uma pasta específica todos os dias?

0

Eu tenho uma situação em que preciso dar a algumas pessoas acesso à minha pasta dropbox. Já até agora eles deletaram pastas enormes cheias de dados importantes. Suas habilidades no computador poderiam usar um pouco de trabalho, aparentemente. Felizmente, há uma função de restauração no site do dropbox. Mas o gui não parece super-poderoso e temo que essas pessoas apaguem permanentemente alguma coisa.

Estou fazendo um arquivo zip da pasta e salvando-o todos os dias na minha máquina local. Eu já restaurei arquivos que não consegui encontrar no gui de restauração da caixa de depósito.

Mas eu tenho medo de ficar ocupado ou preguiçoso e esquecer de fazer o arquivo. Então, eu acho que esta é uma boa oportunidade para aprender scripts de shell automatizados básicos.

Como posso criar um script que

  1. Executar na inicialização
  2. Avisar-me (não sei como) para ver se quero criar um arquivo zip de um diretório específico
  3. Faça isso e salve-o como /path/to/archives/<date>

??

Eu sei apenas bash mínimo no momento ( cd , ls , ssh , etc), então um exemplo prático de como fazer isso seria um trampolim para fazer outras coisas semelhantes úteis no futuro .

Estou executando o Ubuntu em um thinkpad x230.

    
por generic_user 26.08.2014 / 12:44

2 respostas

1

Você deve usar crontab

Exemplo:

Se você quiser que um script chamado tarBackup.sh seja executado todos os dias às 5h, sua entrada crontab será semelhante à seguinte.

Primeiro, instale seu cronjob executando o seguinte comando:

crontab -e

Anexe a seguinte entrada:

0 5 * * * xterm -e /path/to/tarbackup.sh

Salve e feche o arquivo.

Seu tarBackup.sh

Seu tarBackup.sh deve ter as seguintes linhas.

#!/bin/bash
echo "Do you wan to backup?(yes/no)"
read input
if [ "$input" == "yes" ] 
then
    tar -cvf dir.tar dir1 dir2
else
    echo "K sir,I won't backup anything"
fi

[Um exemplo, edite o comando tar como quiser]

A sintaxe geral do crontab é a seguinte.

1 2 3 4 5 /path/to/some/command

onde

1: Minutes 0-59
2: Hours in 24 hours format
3: Day 0-31
4: Month 0-12
5: Day of the week 0-7
/path/to/some/command - Command or script name to schedule
    
por 26.08.2014 / 13:53
1

Eu não sei porque você quer usar arquivos zipados para o seu backup.

Se você usar o rsync, poderá fazer backup apenas dos arquivos novos e alterados (os arquivos removidos não serão afetados).

Exemplo:

#!/bin/bash
# see http://ss64.com/bash/rsync_options.html
DROPBOX=~/Dropbox/
BACKUP=~/dropboxbackup

rsync -rvt $DROPBOX $BACKUP

As bandeiras:

r - recursivo

v - verbose

t - preservar horários

    
por 28.08.2014 / 16:22