• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bash - Wykonywanie backupu co określony czas.

0 głosów
582 wizyt
pytanie zadane 31 stycznia 2017 w Systemy operacyjne, programy przez Sebastian Białek Początkujący (270 p.)

Dzień dobry,

Dostałem zadanie napisać skrypt do backupu. Treść zadania poniżej

"Napisz skrypt do tworzenia kopii zapasowej wybranego katalogu co podany czas, jeżeli jakiś plik w tym katalogu zmienił zawartość."

Poniżej przesyłam mój aktualny stan:

!/bin/bash

SOURCE="/var/www/my_web/load/"
BACKUP="/home/your_user/load/"
LBACKUP="/home/your_user/load/latest-full/"

DATE=$(date +%Y-%m-%d-%T)

DESTINATION="$BACKUP"/"$DATE"-diff/

rsync -av --compare-dest="$LBACKUP" "$SOURCE" "$DESTINATION"

cd "$DESTINATION"
find . -depth -type d -empty -delete

 

Program co prawda wykonuje kopie zapasowe natomiast tylko wtedy kiedy ja go uruchomię, potrzebuję sposobu aby wykonywał się samoczynnie co określony czas. Jakby ktoś mógł pomóc, to byłbym bardzo wdzięczny.

Z wyrazami szacunku,
Sebastian

1 odpowiedź

+4 głosów
odpowiedź 31 stycznia 2017 przez Benek Maniak (71,060 p.)
edycja 31 stycznia 2017 przez Benek
 
Najlepsza

Musisz się zapoznać z programem crontab, który służy właśnie do tego typu działań. Utwórz specjalny plik wsadowy dla programu crontab. W tym celu wpisujesz:

crontab -e

Otworzy Ci się domyślny edytor tekstu do którego możesz wpisywać swoją tabelę.

crontab -r
crontab -l

Powyższe polecenia odpowiednio usuwają plik z tabelą i listują go na ekranie.

PLIK Z TABELĄ

Tabela może uruchamiać wiele zadań jednocześnie o dowolnej porze. Tabela musi mieć co najmniej jeden wiersz (uruchamiać jedno polecenie), by jej istnienie miało sens. Każdy wiersz składa się z 6 pól. 5 pierwszych odpowiada za moment uruchomienia, ostatnie to polecenie.

minuty godziny dni miesiące dzień_w_tyg polecenie

Na przykład jeśli chcesz, by Twój skrypt uruchamiał się każdego dnia o 10:00, to zastosuj zapis:

0 10 * * * bezwzgledna/sciezka/do/skryptu/skrypt.sh

Gwiazdka oznacza wszystkie wystąpienia. Jeszcze jeden przykład:

30 9 * 2-4 1 echo "I'm watching you ^_^"

W tym przypadku w każdy poniedziałek lutego, marca i kwietnia o godzinie 9:30 zostanie wypisane polecenie "I'm watching you".

komentarz 31 stycznia 2017 przez Sebastian Białek Początkujący (270 p.)
Dzięki, wszystko działa jak należy.

Podobne pytania

0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 22 stycznia 2018 w Ogłoszenia, zlecenia przez jjanek Użytkownik (630 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 12 listopada 2017 w C i C++ przez zkkf56 Mądrala (7,310 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

64,182 zapytań

110,584 odpowiedzi

231,742 komentarzy

46,956 pasjonatów

Przeglądających: 259
Pasjonatów: 10 Gości: 249

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...