Backup ΤΩΡΑ ...η συνέχεια :-)

luckyb | Κυρ, 10/05/2008 - 14:15 | 15' | 68

http://luckybackup.sourceforge.net/

Μετά την μεγάλη επιτυχία που script luckyBackup (:-p) και τη λαϊκή απαίτηση (:-p :-p) για gui, βρίσκομαι στην ευχάριστη θέση να ανακοινώσω την παρθενική έκδοση (version 0.1) του luckyBackup.

KDE4_about.png Η εφαρμογή αφορά τη δημιουργία αντιγράφων ασφαλείας, καθώς επίσης και συγχρονισμού υποκαταλόγων με τη χρήση του εργαλείου rsync.
Στα βασικά της πλεονεκτήματα συμπεριλαμβάνονται:

1. Αντιγραφή μόνο των αλλαγών που έχουν γίνει.
Σενάριο: Έχετε ήδη κάνει backup την 300GB συλλογή σας (πήρε 3 μέρες) με μουσική και μετά προσθέσατε έναν ακόμα δίσκο.
Όταν ξανακάνετε backup, μόνο τα αρχεία του δίσκου που προσθέσατε τελευταία θ' αντιγραφούν(θα πάρει 3sec).

2. Οτιδήποτε κάνετε στα δεδομένα σας, θα έχει την ίδια επίπτωση και στο αντίγραφο ασφαλείας.
Δηλαδή αν σβήσετε κάτι, ή του αλλάξετε θέση, ή το τροποποιήσετε με οποιονδήποτε τρόπο, θα "πάθει" το ίδιο και το backup σας (υπενθυμίζω ότι μόνο οι αλλαγές θα περαστούν στο backup).

3. Όλες οι ιδιότητες των αρχείων (owner, group, time stamps, links and permissions) διατηρούνται και στο αντίγραφο ασφαλείας.

Tα ανωτέρω μπορούμε να συνοψίσουμε με την φράση:
"Το luckyBackup δημιουργεί έναν κλώνο των δεδομένων που θέλετε και τον ανανεώνει σε dt"

4. Έχετε την συνατότητα να συγχρονίσετε δυο υποκαταλόγους.
Πολύ χρήσιμο αν δουλεύετε κάτι σε πολλούς υπολογιστές (μεταφορά δεδομένων μέσω φλασακίου) και δεν θυμάστε σε ποιό pc δουλέψατε τελευταία φορά και ποιά αρχεία επεξεργαστήκατε - δημιουργήσατε.
Με τον συγχρονισμό τα αρχεία που επεξεργαστήκατε τελευταία στον έναν φάκελο θα αντικαταστήσουν τα αντίστοιχα στον άλλο φάκελο και τούμπαλιν. Έτσι θα καταλήξετε με δυο υποκαταλόγους που θα έχουν τα (ίδια) πιο καινούργια αρχεία.
ΠΡΟΣΟΧΗ: Αν διαγράψετε κάτι στον έναν υποκατάλογο και όχι στον άλλον, μετά τον συγχρονισμό θα ξαναεμφανιστεί και στους δυο.

5. Ασφάλεια δεδομένων από χαζομάρες.
Το luckyBackup πριν κάνει οτιδήποτε θα ελέγξει αν οι υποκατάλογοι που έχετε δηλώσει υπάρχουν και αν είναι άδειοι και θα σας προειδοποιήσει ανάλογα προς αποφυγή "πατάτας".
Φανταστείτε το προηγούμενο σενάριο όπου έχετε ήδη δημιουργήσει ένα backup μεγέθους 300GB.
Έστω ότι η συλλογή σας βρίσκεται σ'έναν εξωτερικό σκληρό δίσκο τον οποίο έχετε ξεχάσει (πάντα κατά λάθος) να προσαρτήσετε στο γνωστό σημείο (πχ /media/music/) και δίνετε εντολή να εκτελεστεί η παντελώς ηλίθια rsync που δεν παίρνει πρέφα τέτοιες "λεπτομέρειες".
Με έκπληξη θα παρακολουθήσετε το αρκετά ευμεγέθες αντίγραφο ασφαλείας να γίνεται ίδιο με την πηγή (/media/music)

...που είναι κενή !!!

------------------------------------------------------------------------------------------ Ας περάσουμε στο ζουμί της υποθέσεως.
ή αλλιώς "τώρα στα γεράματα

...μάθε γέρο προγράμματα !! "

Το όλο project ξεκίνησε ως αφορμή του γεγονότος ότι δεν έβρισκα (όχι ότι δεν υπήρχαν αξιοπρεπείς λύσεις, απλά δεν με ικανοποιούσαν) μια εφαρμογή που να δημιουργεί αντίγραφα ασφαλείας όπως τα θέλω.
Έτσι είπα να ξεσκουριάσω λιγουλάκι (τελευταία φορά που έγραψα κώδικα ήταν 17000 χρόνια πριν) και να δημιουργήσω κάτι από την αρχή.
Μετά από πολύ ώριμη σκέψη και αναζήτηση του καλύτερου (γύρω στη μια ώρα παρά κάτι διήρκησε) αποφάσισα να χρησιμοποιήσω τον υπέρτατο συνδυασμό c++ & Qt4.

Βοήθεια !!! Στο σημείο αυτό θα ήθελα να κάνω μια (μικρή πάντα) παρένθεση και να ζητήσω τη βοήθεια σας.

Οποιοδήποτε σχόλιο (παρατήρηση, παράπονο, πρόταση, προβλήματα εγκατάστασης, γνώμη(τι βλακεία είναι αυτή κλπ) ) σημαίνει πολλά. Τώρα που το ξαναδιαβάζω σκέφτομαι ότι αυτό το ακούω συχνά. Για, να το ξαναπώ για να δώσω έμφαση:
"ΣΗΜΑΙΝΕΙ ΠΟΛΛΑ"

Δοκιμάστε το, να δείτε αν απλά τρέχει και πείτε το (αναφέρετε και το σύστημά σας)!!
Κάντε σχόλιο ακόμα και για τα screenshots ή για την ιδέα.

(πρέπει ν'ακούστηκα πολύ απελπισμένος)

Εγκατάσταση (μάλον μόνο compile)
Κατεβάζετε το συμπιεσμένο luckyBackup_0.1.tar.gr και το αποσυμπιέζετε κάπου...
πάτε στον υποκατάλογο που το αποσυμπιέσατε:

$ cd /μπλα μπλα/luckyBackup_0.1/

και απλά (!):

$ qmake
$make

Για να τρέξει η εφαρμογή (σημείωση: έχω συμπεριλάβει και το binary στο tarball, οπότε μπορεί και να τρέξει κατευθείαν - αλλά δεν το συνιστώ !!):

$ ./luckybackup

Το σίγουρο είναι ότι χρειάζεστε μερικά πακέτα Qt4 για να τρέξει η "qmake" (αν έχετε το καινούργιο suse με KDE4 μάλον δεν θ'αντιμετωπίσετε κανένα πρόβλημα) και κάποια άλλα για να κάνετε compile με την "make" (το g++ είναι αρκετό).
Παραθέτω ένα απόσπασμα από το πολύ όμορφο tutorial του dimitris που βρίσκεται εδώ

dimitris από http://dimitris.apeiro.gr]...οπότε, ανάλογα με τη διανομή σας, θα χρειαστεί να εγκαταστήσετε τα εξής πακέτα:

PCLinuxOS/Mandriva:
libqt4-devel, libqt3support4, qt4-common, qt4-examples, qt4-designer, qt4-assistant, g++
Debian/Ubuntu/Sidux:
libqt4-dev, libqt4-qt3support, qt4-dev-tools, qt4-designer, qt4-doc, qt4-assistant, g++
Fedora:
qt4, qt4-x11, qt4-devel, qt4-doc, qt4-examples, g++

(Τα qt4-designer, qt4-assistant, qt4-doc, qt4-examples είναι απαραίτητα μόνο για development)
Αν έχετε και Qt3 εγκατεστημένο τότε πιθανόν η "qmake" να αναφέρεται σ'αυτό. Οπότε πρέπει να διαχωρίσουμε ποιο θέλουμε να χρησιμοποιήσουμε με πχ:

$ qmake-qt4

Παρακαλώ πολύ οποιονδήποτε το δοκιμάσει να αναφέρει τι χρειάστηκε (για να δούμε και τις εξαρτήσεις για κάθε διανομή - γραφικό περιβάλλον).
Τυχόν μηνύματα λάθους πιστεύω να τα διευθετήσουμε.
Κυρίως παράθυρο KDE4_backup_empty.png Δήλωση υποκαταλόγων Το κυρίως παράθυρο περιλαμβάνει δυο tabs. Ένα για "backup" κι ένα για "sync".
Στα κενά πεδία γράφουμε το πλήρες path των υποκαταλόγων, σε ζευγάρια ως εξής:

Source Directory: Υποκατάλογος που θέλουμε να δημιουργήσουμε αντίγραφο ασφαλείας
Destination directory: Υποκατάλογος στον οποίο θα δημιουργηθεί (ή θα ενημερωθεί αν υπάρχει) το αντίγραφο ασφαλείας.

Προσοχή στη χρήση του "/" στο τέλος του path. Δίνω ένα παράδειγμα για κατανόηση:

Έστω Source Directory: "/home/luckyb/music" (χωρίς "/" στο τέλος)
και Destination directory: "/media/backups/luckybMusic"
Αυτό θα δημιουργήσει έναν νέο υποκατάλογο στο /media/backups με τ'όνομα (και τα περιεχόμενα φυσικά) music. Δηλαδή μετά το backup θα υπάρχει ο φάκελος "/media/backups/music/".

Έστω Source Directory: "/home/luckyb/music/"
και Destination directory: "/media/backups/"
Αυτό θα αντιγράψει όλα τα περιεχόμενα του "/home/luckyb/music" χύμα στο "/media/backups/luckybMusic". Δν θα δημιουργηθεί νέος υποκατάλογος "/media/backups/luckybMusic/music".

Μπορούμε βέβαια αντί να πληκτρολογούμε να κάνουμε κλικ στο κουμπί "browse" και να επιλέξουμε έναν φάκελο με τη βοήθεια γραφικού διαλόγου.

Όμοια στο tab "sync" δηλώνουμε τα ζευγάρια των υποκαταλόγων που θέλουμε να συγχρονίσουμε.

master backup directory Αν χρησιμοποιούμε μόνο έναν υποκατάλογο για τη δημιουργία αντιγράφων ασφαλείας (πχ τον τεράστιο εξωτερικό σκληρό μας που γίνεται mount στο /media/backups/), τότε περνάμε στο αντιστοιχο πεδίο το path του (το /media/backups/ δηλαδή) και για οποιοδήποτε (μπορεί να μη θέλουμε για όλα) ζευγάρι φακέλων θέλουμε τσεκάρουμε το "use".
Έτσι για "destination directory" θα χρησιμοποιηθεί το "master".

include Εάν θέλουμε να συμπεριληφθεί ένα συγκεκριμένο ζευγάρι στην όλη διαδικασία backup ή/και sync τότε πρέπει να τσεκάρουμε και το αντίστοιχο κουτάκι "include".

new - save - load profile Για να μη ξαναπερνάμε από την αρχή όλα τα στοιχεία των υποκαταλόγων (που με κόπο γράψαμε) κάθε φορά που τρέχουμε την εφαρμογή, μας δίνεται η δυνατότητα να σώσουμε ότι έχουμε κάνει σ'ένα αρχείο με κατάληξη ".profile" και να το επαναφέρουμε όποτε θέλουμε.
Μπορούμε να δημιουργήσουμε όσα αρχεία προφίλ θέλουμε.

Εδώ φαίνεται ένα στιγμιότυπο του luckyBackup με όλα τα ανωτέρω σε χρήση:
KDE4_backup_full.png dry-run ή αλλιώς, δείξε μου τι θα γίνει αλλά μην πειράξεις τίποτα !! Εάν τσεκάρουμε το κουμπάκι "dry-run", τότε θα φαίνεται ότι όλες οι διαδικασίες εκτελούνται κανονικά. Όμως, δεν θα μετακινηθεί το παραμικρό byte.
Πολύ χρήσιμο αν θέλουμε πριν κάνουμε οτιδήποτε να βεβαιωθούμε ότι όλα θα πάνε καλά.

ΣΗΜΕΙΩΣΗ: Όταν εκτελούμε τις διαδικασίες με dry-run, η progress bar που μας δείχνει το ποσοστό των εργασιών που έχει εκτελεστεί (άσχετο: "όλη μου η ζωή, μπάρες που γεμίζουν..."), είναι λίγο παραπλανητική.

backup - sync - Sync and Backup All Αφού λοιπόν τα έχουμε ετοιμάσει όλα, πατάμε το κουμπί που θέλουμε:
backup: Για να εκτελεστούν μόνο οι εργασίες backup (για τις οποίες έχουμε τσεκάρει το "include")
sync: Για να εκτελεστούν μόνο οι εργασίες συγχρονισμού (για τις οποίες έχουμε τσεκάρει το "include")
Sync and Backup All: Για να εκτελεστούν όλες οι εργασίες (για τις οποίες έχουμε τσεκάρει το "include")

Αμέσως γίνεται ο έλγχος των υποκαταλόγων που δηλώσαμε και μας δίνεται η δυνατότητα να συνεχίσουμε ή να σταματήσουμε:

KDE4_source_and_dest_check.png Παρατηρήστε ότι για κάθε (πιθανό) σφάλμα το luckyBackup αναφέρει αν θα συμπεριλάβει κάποια εργασία (CRITICAL - πρόσεξε τι γράφω μη γίνει καμοιά βλακεία) ή όχι (WARNING - αν συνεχίσω θα γίνει σίγουρα βλακεία γι'αυτό θα το παραλείψω) και τους λόγους.

Πατάμε το "Go On" και ξεκινάει το πανηγύρι:

KDE4_perfoming_backup.png Οποιαδήποτε στιγμή θέλουμε μπορούμε να διακόψουμε τη διαδικασία πατώντας το Abort NOW:

KDE4_operations_aborted.png ...και φυσικά όταν όλα τελειώσουν θα μείνουμε με το ακόλουθο παράθυρο:

KDE4_operations_done.png logfile Κάθε φορά που εκτελούμε ένα backup ή sync ή και τα δυο. Δημιουργείται ένα αρχείο log που θα βρείτε στο home σας:
~/.luckyBackup/logs/logfile.txt για να μελετήσετε όποια στιγμή θέλετε.
To do Το luckyBackup είναι εφαρμογάρα και κάνει παπάδες !! :-p

Παρ'όλ'αυτά του λείπουν μερικά πραγματάκια:

1. Ένα σοβαρό gui που δεν θα περιορίζει στα 10 ζευγάρια.

2. help dialog:

KDE4_help.png 3. Έλεγχος αν οι διαδικασίες τρέχουν με δικαιώματα root.
Είναι πιθανό τα αρχεία που θα μεταφέρονται να έχουν permissions πέραν των δυνατοτήτων του απλού χρήστη.
Κι επειδή το αντίγραφο ασφαλείας είναι κλώνος των πραγματικών δεδομένων, για τα αρχεία αυτά η διαδικασία θ'αποτύχει.
Για να είμαστε σίγουροι ότι θα γίνουν όλα πρέπει να εκτελούμε τα πάντα με δικαιώματα su.

4. Μετάφραση σε άλλες γλώσσες(Ελληνικά για αρχή) με αρχεία .po (GRIGRIS ετοιμάσου :-p)

5. Κανονική εγκατάσταση με "make install" 6. Πακέτα εγκατάστασης για κάποιες διανομές (deb, rpm κλπ) 7. Ότι άλλο προτείνετε !!! Εύχομαι καλά, γρήγορα, αξιόπιστα, ασφαλή και εύχρηστα backup !!
luckyb
:-)

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

ωπ ωπ έχουμε και winter of code από τον luckyb,όλο δώρα μας είσαι :D :D

--------------------
happy_linux_downloads

Έκκληση για δοκιμαστές

Λοιπόν,
μετά από πολύ προσπάθεια, χρόνο κλπ κλπ
είναι επιτέλους έτοιμη η έκδοση 0.2.pre1 :-p

Έκανα ένα αρχικό release για σκοπούς δοκιμής.
Όποιος θέλει να βοηθήσει στην τελική release, το μόνο που έχει να κάνει είναι να κατεβάσει τη νέα έκδοση, να παίξει λίγο μαζί της (κανά μισαωράκι) και να μου πει όποιες παρατηρήσεις (μ'ενδιαφέρουν ιδιαίτερα οι αρνητικές).

Επίσης, αν σας αρέσει η εφαρμογή δώστε ένα θετικό ψήφο στο kde-apps

Παραθέτω και μερικά screenshots:
v0.2_main.png

v0.2_modifySimple.png

v0.2_modifyAdvanced1.png

v0.2_schedule.png

v0.2_CommandLine.png

Καλά Χριστούγεννα :-)

(το post αυτό δημοσιεύτηκε αρχικά στο sidux.gr)

Sorry for the english but I can not type in Greek for now. Well... Mery Christmas...Now for your programm.It is much better from the previous one.

In console mode you must already have a profile. This is a disadvantage because in my network I do not have X server
If I create a profile and schedule it for every day at 15:00 and save it as cluster-backup.profile the schedule will
will be used in console mode as well??
SSH is enable or in next version??

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

Hi Slack
and merry Xmas :-)

It's true, if you run the app in console mode, you should already have created a profile.
It's not that easy to create a profile in command line mode (if you can think of a way, please share it with me :-)).
Nevertheless, I'll put in in my to-do list.

schedules are not part of a profile (they are not saved in a .profile file).
(Via the schedule dialog, you select any existent profiles and choose when they are going to be executed)
I'll give you a hint though that might help:
in gui mode, when you create a schedule, a file named ~/.luckyBackup/schedule/luckyCron.txt is created.
That is the user's crontab with the luckyBackup entries added and it eventually replaces the orifinal user's crontab.
luckyBackup schedules are always executed in command-line mode.
Here is an example:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 0 * * * /usr/bin/luckybackup -c --no-questions --skip-critical /home/luckyb/.luckyBackup/profiles/default.profile
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ end of luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SSH is enabled. But there is no support for an SSH password yet. I have to figure out a way (if it's possible) of doing that ...

"SSH is enabled. But there is no support for an SSH password yet. I have to figure out a way (if it's possible) of doing that ..." Is it possible with CA to use SSH???

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

Αρχίζει και μ'αρέσει η όλη συζήτηση στ'Αγγλικά :-)

Τι είναι αυτό το CA :?
Anyway, όπως ξέρεις η εφαρμογή χρησιμοποιεί το rsync για μεταφορά δεδομένων. Η μόνη επιλογή που δίνει η rsync είναι του στυλ "χρήση SSH ή όχι". Έπειτα, όταν πάει να γίνει η remote σύνδεση σου ζητάει password.
Αυτό βέβαια, δεν είναι καθόλου βολικό όταν έχεις βάλει rsync με ssh σε cron.

Κάποιος που θέλει να χρησμοποιήσει την rsync με ssh χωρίς να τον/την πρήζει για κωδικό πρέπει να κάνει κάποιες αλχημείες (νομίζω με κάτι αρχεία ρυθμίσεων του ssh). Μέχρι λοιπόν να καταλάβω τι αλλαγές πρέπει να γίνονται και σε ποια αρχεία (μέσα από το luckybackup) το μόνο που είναι εφικτό, είναι να κάνει ο χρήστης (όποιος γνωρίζει) μόνος του ότι χρειάζεται για να μη ζητάει password σε κάθε ssh σύνδεση και να τσεκάρει το κουτάκι "use ssh" στο παράθυρο "operation properties".
Ελπίζω να κατάλαβα καλά (συνεχίζω να έχω απορία για το CA :-p) και να μη σε μπέρδεψα.

μη νομίζεις, κι εγώ ψάχνοντας πάω. Έχω να ρίξω τόσο διάβασμα από τη διπλωματική στο μεταπτυχιακό :-p
μπορεί η εφαρμογή να φαίνεται γενικά απλή (ένα gui που δίνει παραμέτρους στην εντολή rsync), αλλά η πραγματικότητα απέχει μερικά έτη φωτός από αυτή την απλοϊκή σκέψη.

πάντως για έναν λόγο τα κάνω όλ'αυτά (προφανώς όχι για χρήματα)
για να τη βρούν χρήσιμη μερικοί άνθρωποι.
Γι'αυτό χαίρομαι όταν έχω ν'αντιμετωπίσω σχόλια και ερωτήσεις όπως τα δικά σου
:-)

CA means Certficate Authority. I write in English for not writing in greeklish!!!
There are two way in order to connect using SSH 1) using passwd, 2) using certificates public/private key

The second way is more secure because you have to choose DSA or RSA cryptographic algorithm with 2048 bits as default requrement for RSA. For more information man ssh-keygen

I hope to help you :-)

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

Μπράβο ρε Slack
είσαι κορυφή
είσαι ο θεός του remote connecting
:-)

μ'έσωσες από πολύ ψάξιμο

Το gui θ'αλλάξει ώστε αντί για password όταν θέλει ο χρήστης ssh ...να έχει ένα πεδίο στο οποίο θα βάζει το όνομα του αρχείου με το ssh κλειδί

-    -    -   - L I N U X -   -   -   -   -   -   -   -

Τέλειο απλά!!!
Ευχαριστώ πολύ luckyb και άπειρα μπράβο!

Καλισπερα και χρονια πολλα,

Λοιπον τον φτιαχνεις priv/pub key δινεις και ενα passwd (προεραιτικα) ωστε αν στο παρουν το κευ να μην μπορουν να το χρησιμοποιησουν.

απο οτι ειδα χρησιμοποιείς το προγραμμα rsync για να κανεις το backup, αντι να το χρησιμοποιεις αυτο θα μπορουσε να χρησιμοποιεις τα function που σου δινει απο τον κωδικα το rsync και να περνας τις παραμετρους που θες μεσα στις functions.

Με αυτον τον τροπο θα μπορέσει να πετυχεις περισσοτερα απο οτι να δινεις ολες τις επιλογες σαν arguments στο rsync (εκτελεσιμο)...

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

γνωστά προβλήματα (μέχρι τώρα :-p) στην v0.2-pre1 που θα έχουν φτιαχτεί στην τελική release:

1 (το σημαντικότερο). Οι εργασίες που εμφανίζονται μετά τον έλεγχο των υποκαταλόγων ως "WARNING" δεν θα έπρεπε να εκτελούνται. Παρ'όλ'αυτά γίνονται κανονικά !!

2. Το command line mode και τα schedules εκτελούνται μόνο σε dry-run (simulation) (εντάξει, ξέχασα να κάνω commend μια γραμμή που είχα για σκοπούς testing :O )

3. Το πεδίο για SSH password στην ουσία δεν κάνει καμία ενέργεια, οπότε μην το χρησιμοποιείτε !!

Slack, αυτές τις μέρες θα κάνω δοκιμές με ssh (το gui και ο κώδικας ενημερώθηκαν) για να δω πως θα τα πάει.
Όσο για τα functions του rsync ...πως δεν το σκέφτηκα (η χαρά της gpl) :?
Θα αφήσω την πρώτη release (0.2) ως έχει, κι αφού τελειώσω με τα διαδικαστικά (manual κλπ) θα το μελετήσω

ms86lx, thank u, thank u :-) :-)

luckyb το κοιταξα πιο προσεκτικα και με περισσοτερο χρονο το προγραμμα σου και βρηκα αρκετα.. πως να το πω... ας το πω λαθος λογικης... καλοπροαιρετα παντα

οταν εχς επιλεγμενο το sync και εχω τους φακελους manuals,dictionaries,mysq_back_public_html και θελω να τους παρω ταυτοχρονα τοτε στον επομενο φακελο προσθετει τα περιεχομενα του προηγουμενου, με αποτελεσμα να εχω στο manuals τα περιεχομενα του public_html.
Παραδειγμα εχω βαλει την εξεις σειρα
public_html
dictionaries
manuals
mysql_backup
Mail_backup
ολα πεφτουν στα αντιστοιχα directories στο /mnt/backup οπου εκει ειναι mount ενας 80GB εξωτερικος δισκος
Τωρα το dictionaries θα εχει τα περιεχομενα του public_html, το manuals του public+dictionaries+τα δικα του, το mysql_backup θα εχει public_html+dictionaries+manuals+τα δικα του.

δες για να καταλαβεις τι λεω

dicts:
total 195180
drwxrwxrwx 4 oprime oprime 4096 2008-12-28 21:29 .
drwxrwxrwx 9 root root 4096 2008-12-28 21:43 ..
-rw-r--r-- 1 oprime oprime 33177149 2008-12-23 16:44 all_4.bz2
-rw-r--r-- 1 oprime oprime 166451200 2008-12-28 21:27 all.tar
drwxr-xr-x 4 oprime oprime 4096 2008-12-20 16:52 galux
-rw-r--r-- 1 oprime oprime 22 2008-12-01 00:57 index.php
-rw-r--r-- 1 oprime oprime 4250 2008-12-22 10:04 mysql.22081221
drwxr-xr-x 6 oprime oprime 4096 2007-09-16 17:50 phpMyEdit-5.7.1

Mail: <-- αυτο το εκανα manually για αυτο βγηκε σωστα
total 16
drwxr-xr-x 4 oprime oprime 4096 2008-12-07 18:36 .
drwxrwxrwx 9 root root 4096 2008-12-28 21:43 ..
drwx------ 3 oprime oprime 4096 2008-12-23 22:59 Local Folders
drwx------ 2 oprime oprime 4096 2008-12-14 11:03 mail.iasa.gr

manuals:
total 195944
drwxrwxrwx 4 oprime oprime 4096 2008-12-28 21:30 .
drwxrwxrwx 9 root root 4096 2008-12-28 21:43 ..
-rw-r--r-- 1 oprime oprime 33177149 2008-12-23 16:44 all_4.bz2
-rw-r--r-- 1 oprime oprime 166451200 2008-12-28 21:27 all.tar
-rw------- 1 oprime oprime 258026 2008-12-09 03:26 Docu-XenwithWinCCS.pdf
drwxr-xr-x 4 oprime oprime 4096 2008-12-20 16:52 galux
-rw-r--r-- 1 oprime oprime 22 2008-12-01 00:57 index.php
-rw-r--r-- 1 oprime oprime 112128 2008-11-30 03:14 iptables_part2.doc
-rw-r--r-- 1 oprime oprime 20063 2008-11-30 03:13 iptables_part2.odt
-rw-r--r-- 1 oprime oprime 246133 2008-11-30 01:15 iptablesrocks.pdf
-rw-r--r-- 1 oprime oprime 33863 2008-11-30 03:17 iptables.tar.gz
-rw-r--r-- 1 oprime oprime 4250 2008-12-22 10:04 mysql.22081221
drwxr-xr-x 6 oprime oprime 4096 2007-09-16 17:50 phpMyEdit-5.7.1
-rw------- 1 oprime oprime 82363 2008-12-20 11:14 villafilliza_com.pdf

επισης μου χαλαει τους φακελους στα directories του /home
take a look

oprime@otobots:~/dicts$ ls
all_4.bz2 galux iptables_part2.doc iptablesrocks.pdf Mail villafilliza_com.pdf
Docu-XenwithWinCCS.pdf index.php iptables_part2.odt iptables.tar.gz mysql.22081221
oprime@otobots:~/dicts$ rm -rf Docu-XenwithWinCCS.pdf galux/ iptables* Mail/ mysql.22081221 villafilliza_com.pdf
oprime@otobots:~/dicts$ ls
all_4.bz2 index.php
oprime@otobots:~/dicts$ rm -f index.php
oprime@otobots:~/dicts$ cd ../manuals/
oprime@otobots:~/manuals$ ls
Docu-XenwithWinCCS.pdf index.php iptables_part2.odt iptables.tar.gz mysql.22081221
galux iptables_part2.doc iptablesrocks.pdf Mail villafilliza_com.pdf
oprime@otobots:~/manuals$ rm -rf index.php galux/ Mail/ mysql.22081221
oprime@otobots:~/manuals$ ls
Docu-XenwithWinCCS.pdf iptables_part2.doc iptables_part2.odt iptablesrocks.pdf iptables.tar.gz villafilliza_com.pdf
oprime@otobots:~/manuals$

ελπιζω να σε βοηθησα

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

slack,
καταρχήν σ'ευχαριστώ πολύ για το feedback.
Όσο κι αν προσπαθώ μόνος μου, ότι σενάρια κι αν βάλω στο μυαλό μου, για οποιονδήποτε χρήστη και οποιαδήποτε εργασία θα ήθελε να κάνει,
είναι σίγουρο πως θα μου ξεφύγουν πολλά πράγματα που δεν τα έχω τεστάρει

το sync γίνεται μεταξύ 2 υποκαταλόγων.
Αν υπάχρουν ίδια αρχεία και στους δυο φακέλους, αλλά το ένα επεξεργασμένο πιο παλιά από το άλλο, τότε θα καταλήξεις με το πιο καινούργιο αρχείο και στους 2 υποκαταλόγους.
Αν ο ένας υποκατάλογος έχει ένα αρχείο που δεν το έχει ο άλλος, μετά το sync το αρχείο θα υπάρχει και στους 2 υποκαταλόγους

πες μου ακριβώς τι έχεις κάνει για να μπορέσω να δημιουργήσω ένα παρόμοιο σενάριο στο δικό μου σύστημα.
Έχεις βάλει ως source το home σου και ως destination το /mnt/backup/
...και μετά στη λίστα "only include" έχεις περάσει (έτσι ακριβώς όπως τα γράφω) τα
public_html
dictionaries
manuals
mysql_backup
Mail_backup
τα οποία είναι υποκατάλογοι
? ? ?
ή κάτι άλλο ??

Επίσης πες μου τι ακριβώς θέλεις να κάνεις
πχ Να κάνεις backup τους 4 αυτούς υποκαταλόγους τους οποίους δουλεύεις μόνο από το home, στο /mnt/backup σε υποκαταλόγους με τα ίδια ονόματα...

Καλημερα luckyb,

εχω τους φακελους manuals,dictionaries, public_html, mysql_backup, mail_backup

τα οποια ειναι στο /home και θελω να τα βαλω στο /mnt/backup με τις ονομασιες που ιδι εχουν.

Στο ποηγουμενο version αυτο δουλευε χωρις καποιο ιδιαιτερο προβλημα.

Δηλαδη ειχα βαλει

source: /home/oprime/public_html destination: /mnt/backup

source: /home/oprime/manuals destination: /mnt/backp

...etc

και στο /mnt/backup μου εφταξε τους φακλεους και μεσα σε αυτους εβαλε τα αρχεια. Ωραια μεχρι εδω.

Εβγαλα το παλιο ωερσιον εβαλα το καινουριο, πηγα με τον ιδιο τροπο οπως παραπανω

και μου εβγαλε το προβλημα που σου ανεφερα παραπανω.

Εφτιαξα τους φακελους στο /mnt/backup και δοκιμασα παλι και ειχα τα ιδια αποτελεσματα, οποτε πηγα στο /home/oprime και ειδα οτι το directory manuals ειχε και αλλα αρχεια εκτοσ απο αυτα ποθ πρεπει να εχει.

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

Καλημέρα Slack
:-)

Νομίζω ότι αυτό το "sync directories" ως operation type θα tο βγάλω τελείως στην τελική version.
Αφενός μπερδεύει τον κόσμο.
Αφετέρου δεν είναι και πολύ χρήσιμο.
Το έφτιαξα με σκοπό να χρησιμοποιείται σε περιπτώσεις που επεξεργαζόμαστε αρχεία σε περισσότερα από ένα σημεία (πχ τη μια δουλεύουμε στο PC μας και την άλλη στο φλασάκι μας) και δεν θυμμόμαστε ποιο ακριβώς αρχείο επεξεργαστήκαμε που την τελευταία φορά. Δες τι έγραψα παραπάνω για το sync και πως λειτουργεί...

Δοκίμασε να επιλέξεις (σε όλες τις εργασίες) ως operation type -> "Backup dir my name"
και άφησε τα πεδία source και destination ως έχουν

...αλλιώς επέλεξε "backup dir contents"
και άλλαξε τα destination ως /mnt/backup/maunals, /mnt/backup/public_html ...κοκ

μην ανησυχείς για τις καθέτους στο τέλος των υποκαταλόγων (trailing slashes). τΙς αλλάζει αυτόματα το πρόγραμμα

...αλλιώς επέλεξε "backup dir contents" ως operation type
/home/oprime ως source
/mnt/backup ως destination
τσέκαρε το κουτάκι "Only include" και πρόσθεσε τους υποκαταλόγους που θέλεις στη λίστα ως εξής:
**/public_html/
**/dictionaries/
**/manuals/
**/mysql_backup/
**/Mail_backup/
(αυτό θα πάρει λίγη πιο πολύ ώρα)

luckyb καλησπερα, λοιπον το "Only Include" δεν μου δουλεψε γιατι επρεπε να επιλεψω ενα-ενα τα αρχεια... αλλα τελικα βρηκα λυση. Εβαλα την 2η επιλογη "Backup dir my name" διαλεξα τους φακελους που ηθελα τους εβαλα ολους στο /mnt/backup, αγνοησα τα warnings και δουλεψε..:-)

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

τελικά δεν είναι και τόσο εύχρηστο το gui μου φαίνεται ...μπερδεύει
μπορείς απλά να πληκτρολογήσεις ότι θέλεις (δεν είναι απαραίτητο να χρησιμοποιήσεις το πλήκτρο browse) και να πατήσεις add.
Επιφυλάσσομαι για την 0.2.1 να το βελτιώσω.

Slack
γι' ακόμα μια φορά σ'ευχαριστώ.

Τα σχόλια σου βοήθησαν πάρα πολύ και ετοίμασα ήδη τα πακετάκια για την τελική release (το spec που έφτιαξες είναι κορυφή :-)).

Καλημερα,

Προσπαθησα να σκεφτω σαν ενασς αρχαριος χρηστης ο οποιος θα κανει οτι του πουν και θα παει By the book αμερικανακι δλδ. :-)

Χαιρομαι που το spec σε βοηθησε. Α και κατι ακομα που ξεχασα να σου πω για τα πιστοποιητικα με ssh... αν δεν βαλεις passwd τοτε θα σου το ζητησει...

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'