Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autobackup plików - czy takie coś istnieje?
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
adam1024
Witam,
Mam pytanie, czy istnieje jakiś skrypt,plugin, albo zewnętrzne narzędzie które mogłoby mi zapisywać każdy wysłany przez FTP'a plik na dysku lokalnym bądź na jakimś serwerze? Tak by w przypadku dokonania jakiejś niefortunnej zmiany można było przywrócić dany plik.
vokiel
Po pierwsze jeśli wysyłasz coś na FTP to znaczy, że masz źródło, czyli już masz to zapisane gdzieś lokalnie.

Po drugie zainteresuj się systemem kontroli wersji, np git, wtedy będziesz miał całą historię zmian. Zrób sobie lokalną kopię strony, tak, żebyś nie musiał grzebać w plikach na serwerze, tylko wcześniej robisz wszystko lokalnie, testujesz i jeśli działa to dopiero wrzucasz na serwer.
adam1024
w przypadku systemu kontroli wersji trzeba jednak ciągle pamiętać o "commitowaniu?" a chodzi mi o coś takiego gdzie np. przy każdym zapisie pliku i wysyłce np. przez FileZille - tworzony byłby plik dajmy na to 2015-05-17-22-40-17-index.html
i tak w każdym przypadku z tą różnicą że zmieniałaby się data/ godzina wysyłanego pliku
rad11
Netbeans ma taka opcje jak Historia może o to Ci chodzi. Ale tak jak kolega wyżej zainteresuj sie SVN`em.
vokiel
Cytat(adam1024 @ 17.05.2015, 22:41:33 ) *
w przypadku systemu kontroli wersji trzeba jednak ciągle pamiętać o "commitowaniu?"

O wysyłaniu pliku przez FTP też trzeba pamiętać dry.gif

Poza tym bawiąc się w wysyłkę po FTP musisz pamiętać które pliki zostały zmodyfikowane. Korzystając z kontroli wersji masz od razu listę plików i dokładne informacje co w którym zostało zmienione. Twój sposób powoduje, że będziesz miał dziesiątki/setki wersji danego pliku, ale bez żadnej informacji o różnicach w ich zawartości. Szukając zmiany musiałbyś robić diff'y z każdej wersji plików, co po pewnym czasie będzie bardzo trudne do ogarnięcia.

Możesz sobie założyć konto na Bitbucket.org, stworzyć darmowe prywatne repozytorium, następnie ustawić post-hook'a, który wywoła skrypt na serwerze, który to uaktualni repozytorium do najnowszej wersji. Wtedy po zakończeniu etapu prac robisz commit + push do zdalnego repozytorium, hook się wywołuje i projekt na serwerze zostaje zaktualizowany. Dzięki temu nie musisz bawić się w wysyłanie plików po FTP, sprawdzanie, które zostały zmienione itd.


Jeśli już tak bardzo chcesz to robić na piechotę to możesz na serwerze/lokalnie napisać skrypt, który przejrzy wszystkie pliki w projekcie i porówna ich filemtime z poprzednim (zapisany w bazie, pliku), i jeśli aktualny jest nowszy to zrobi jego kopię. Skrypt byś sobie wrzucił do cron'a, albo wywoływał ręcznie po wysłaniu plików na serwer.
viking
Albo rób rsync tylko zmienionych plików.
adam1024
Cytat(vokiel @ 18.05.2015, 09:59:29 ) *
O wysyłaniu pliku przez FTP też trzeba pamiętać dry.gif


W przypadku edycji bezpośrednio z FileZilli wystarczy że tylko kliknę Ctrl+S i potwierdzę wysyłkę.
Ale dzięki serdeczne za odpowiedź, zapoznam się z nimi po pracy i jak mnie coś zaciekawi to się odezwę.
vokiel
Cytat(adam1024 @ 18.05.2015, 14:13:47 ) *
W przypadku edycji bezpośrednio z FileZilli wystarczy że tylko kliknę Ctrl+S i potwierdzę wysyłkę.


W taki sposób prosisz się o problemy. Wystarczy jedna literówka i strona/aplikacja przestaje działać.
adam1024
Wtedy wracam do Notepad'a klikam Ctrl+Z i ponownie zapisuję stronę, jednak chcialbym mieć "backup" takich czynności, czy jest inny sposób na taki backup? bo z tego co się orientowałem GIT jest płatny jeśli chcemy mieć prywatne repo, a na tym też mi zależy
Pyton_000
Git nie jest płatny
Xelah
Chyba GitHub. Tam i owszem, prywatne repo są płatne. Ale już na Bitbucket nie.

https://bitbucket.org/plans
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2018 Invision Power Services, Inc.