Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Applets | Applets [applet] Backup
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Applets | Applets

Subjects Author Language Messages Last message
[Locked] [applet] Backup
ours_en_pluche Français 8 fabounet [Read]
16 January 2014 à 17:35

ours_en_pluche, Monday 30 December 2013 à 15:40


Subscription date : 02 September 2009
Messages : 539
Salut,

( oui oui, je sais, ca fait longtemps, peut-être pas assez pour que vous puissiez me resupporter

y a pas longtemps, le disque dur de mon pc fixe m'a royalement lâché,
donc, j'en rachète un, je réinstalle et malheur, je me rend compte que le dossier de backup que j'avais fait à la main n'était pas du tout à jour ...
résultat, plein de choses de perdus ...

bref, j’arrête de vous raconter ma vie

donc l'idée m'est venu de créer un dossier de backup qui serait mis à jour plus souvent.
il existe de nombreux programmes qui réalise cela, mais y en avait pas dans Cairo-Dock, qui me semblait être une bonne base pour le faire facilement, entre autre du au drag and drop, et au fait qu'on a toujours CD de démarré.
donc me voilà

donc un applet, écrit entièrement en Perl ( oui, oui, je sais )
sans avoir besoin de dépendance non présente dans le core de Perl

comment il fonctionne ? : il suffit de Drag and Drop les fichiers/dossiers que l'on souhaite sauvegarder pour qu'ils soient ajoutés a la liste.
la configuration est on ne peut plus simple : le dossier de destination, le temps d'affichage des dialogues ( réglables entre 0 à 30 secs ).

pour effectuer une sauvegarde : un simple clic gauche sur l’icône
pour éviter tout appui intempestif, il faut confirmer que l'on souhaite effectuer la sauvegarde.

les chemins sont conservés, donc un fichier présent dans : /home/ours/Images/Maison.png
se retrouvera dans /media/save/home/ours/Images/Maison.png

si on glisse dépose un dossier sur l’icône, le chemin du dossier est ajouté a la liste, par contre, lors du drag and drop, c'est le dossier, et les sous dossiers qui seront sauvegardés.

lors d'une sauvegarde, si le fichier est déjà présent dans le répertoire de sauvegarde, on vérifie le md5 des 2 et s'ils diffèrent, c'est mis a jour.

si un fichier est incopiable ou qu'un dossier n'est pas créeable, un dialogue affichera a la fin du backup qu'il y a eu des erreurs, et qu'un rapport est disponible dans le dossier de destination

un middle clic affichera en dialogue le nombre d'éléments présent dans le fichier de sauvegarde ( celui dans lequel il y a la liste des éléments à sauvegarder )
un scroll ( haut ou bas ) de la souris affichera en seticon la date du dernier backup.

dans le dossier de sauvegarde, on trouve 3 fichiers :
-le fichier avec les éléments a sauvegarder
-le fichier avec l'historique des mises a jours de fichiers ou des ajout de fichiers, on y trouve aussi la date des derniers updates
-le fichier d'erreur, qui stocke les erreurs de copie ou de création de dossiers ( qui peuvent arriver en cas de problème de droit en lecture par exemple )

dans le menu contextuel, on trouve 4 commandes :
-la commande verbose, qui permet d'écrire dans le terminal ou est lancé Cairo-Dock, par défaut, c'est inactif
-la commande sauvegarder pour effectuer une sauvegarde
-la commande nombre d éléments, identique au middle clic
-la commande date du dernier backup, identique au scroll de la souris

problèmes connus :
-menu clic droit non correctement affiché ( si qqn veut bien zieuter un coup d’œil aux alentours des lignes 273 et me dire ou je me suis trompé )
verbose devrait etre dans le sous dossier de l'applet
commande devrait creer un sous menu
les 3 derniers devraient etre dans le sous menu

a faire :
possibilité de lister l'ensemble des entrées
possibilité d'en supprimer
soucis pour les 2 précédents : la liste risque d être longue :/
changer l'icône
au démarrage de l'applet, afficher la date du dernier backup.

par contre, je suis sur mon portable qui est encore en 12.04 donc CD pas a jour, mais il m'est apparu un truc, lorsque CD plante ou que l'on l’arrête via ctrl+c dans le terminal, les applets continuent à fonctionner, et donc on peut se retrouver avec plusieurs instances d'applets fonctionnant en même temps. serait il envisageable d'envoyer via DBus, avant de charger les applets et après la création des objets applets de DBus, un on_stop, cela permettrait aux applets de ne pas être relancé en doublon ?

le lien pour le dl : https://www.dropbox.com/s/dp1bjizgizzrtnk/Backup.tar.gz

cordialement

ours

-----------------------------------

Aujourd'hui, et depuis toujours, je suis égyptienne. Un ami m'a demandé très sérieusement si, en Égypte, nous écrivions toujours en hiéroglyphes. VDM

matttbe, Tuesday 31 December 2013 à 00:34


Subscription date : 24 January 2009
Messages : 12573
Salut!

Oh oui, ça fait longtemps et tjs avec ces VDMs!

Ah cool, une nouvelle applet! Bon, en Perl mais si seules les dépendances classiques sont utilisées, ça va! Enfin, quand je le lance, j'obtiens ce message
Can't locate Net/DBus.pm in @INC (you may need to install the Net::DBus module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.1 /usr/local/share/perl/5.18.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at ./Backup line 37.
BEGIN failed--compilation aborted at ./Backup line 37.
(bref, il faut le paquet libnet-dbus-perl)

Je n'ai pas trop le temps pour le moment d'y regarder de plus près, j'ai juste fait un essaie et ça semble bien fonctionner
J'ai ajouté l'applet sur BZR pour que d'autres personnes puissent tester

Sinon, en vitesse voici quelques idées d'amélioration (voir demandes pour que l'applet soit diffusée sur le site):
  • L'anglais: oui, faudrait que tout ce qui est affiché soit en anglais (description, dans les bulles de dialogues, etc.). Idéalement, tout devrait être en anglais même dans le code mais je peux comprendre que ça peut être bloquant
  • Cool, plein de commentaires dans le code
  • Le dossier par défaut devrait être modifié (ex: supporter le '~' et utiliser '~/Backup' par défaut et créer ce dossier s'il n'existe pas voir notifier l'utilisateur s'il veut utiliser ce dossier et qu'il ne contient pas le fichier qui liste les données à sauvegarder?)
  • Pour les config, il faudrait reprendre le début d'une autre applet qui a été actualisée. N'hésite pas à utiliser le PPA pour avoir la dernière version stable
  • L'icône "n'est pas trop dans le thème" (idéalement du genre 'gtk-save' du thème Humanity)
  • Ton programme est lancé avec plusieurs arguments: l'id, le chemin du bus D-Bus, le chemin du fichier de config, le dossier data du dock, le nom de l'exécutable qui a lancé l'applet et le PID de celui qui a lancé l'applet, par exemple:
    /usr/bin/perl ./Backup 6 /org/cairodock/CairoDock/Backup /home/xxx/.config/cairo-dock/current_theme/plug-ins/Backup/Backup.conf /home/xxx/.config/cairo-dock cairo-dock 17835
    N'hésite pas à utiliser ces arguements plutôt qu'indiquer des chemins "en dur"
  • Pour ton soucis avec le dock qui est coupé, tu peux donc vérifier de temps en temps si le PID est toujours vivant.
  • Ce serait cool d'avoir une courte description et un bref manuel (en anglais et concis: drop, click, middle click, scroll) dans le fichier auto-load.conf


Voilà voilà!

PS: si l'utilisation de BZR pose soucis (malgré le wiki), pas besoin de perdre trop de temps avec ça (mais c'est plus facile pour nous si les modifs sont faites sur une branche qu'il suffit de merger )

ours_en_pluche, Tuesday 31 December 2013 à 07:38


Subscription date : 02 September 2009
Messages : 539
salut

ah oui, effectivement, cette dépendance est nécessaire :/

  • ok, je vais traduire les textes en anglais, mais à mon avis, quelqu'un devrait vérifier après moi pour faire passer de petit anglais à anglais.
  • oui, pour une fois j'ai fait un effort sur les commentaires
  • ok pour le dossier de destination, je m'en occupe
  • ok pour le dossier de config
  • ok pour l'icone ( je viens de le faire )
  • ok pour les arguments, je vais virer ce qui est en dur
  • ok, je rajoute la description


pour bzr, pas de soucis pour que je m'y mette, mais la ou je suis actuellement, ma connection est limitée, je n'ai pas acces a ssh, hors bzr utilise ssh de mémoire, donc impossible pour le moment :/

je tiens au jus des que j'ai avancé.

cordialement

ours

------------------------------------------

Aujourd'hui, repas chez ma belle-mère. À la première fourchette, je fais une grimace incontrôlable à cause de l'acidité. Ma belle-mère, m'ayant vue, demande ce qu'il se passe. Ne voulant pas être impolie, j'ai répondu que c'était trop chaud. Ç'aurait pu marcher si ça n'avait pas été une salade. VDM

fabounet, Monday 06 January 2014 à 16:48


Subscription date : 30 November 2007
Messages : 17118
lorsque CD plante ou que l'on l’arrête via ctrl+c dans le terminal, les applets continuent à fonctionner, et donc on peut se retrouver avec plusieurs instances d'applets fonctionnant en même temps

les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon


possibilité de lister l'ensemble des entrées
possibilité d'en supprimer
soucis pour les 2 précédents : la liste risque d être longue :/
changer l'icône
au démarrage de l'applet, afficher la date du dernier backup.


attention à ne pas en faire une usine à gaz
l'idée est simplement de pouvoir copier des fichiers dans un répertoire donné, rapidement
pour le reste, le navigateur de fichiers est un outil plus adapté

idée: un message quand la copie est finie, ou si un problème est survenu (important)
idéalement, une barre de progression s'il est possible de récupérer l'avancement de la copie

comme info utiles: date de dernière copie, taille du répertoire

matttbe, Wednesday 08 January 2014 à 00:08


Subscription date : 24 January 2009
Messages : 12573
Et vérifier s'il y a assez de place pour le backup?

ours_en_pluche, Tuesday 14 January 2014 à 07:53


Subscription date : 02 September 2009
Messages : 539
salut,

fabounet :

les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon

euh, je vais revérifier

fabounet :
pour le reste, le navigateur de fichiers est un outil plus adapté

pour la possibilité de lister ou de supprimer un fichier, je pensais tout simplement l'afficher via "xdg-open"

fabounet :
idée: un message quand la copie est finie, ou si un problème est survenu (important)

deja present

fabounet :
idéalement, une barre de progression s'il est possible de récupérer l'avancement de la copie

par entrée, en clair, si y a 1 fichier de 1k et 1 dossier de 50M, il sera à 50% après le fichier de 1k car à l'heure actuelle, je n'analyse les entrées qu'au fur et à mesure ( je traite l'entrée 1 puis l'entrée 2 et ainsi de suite ), sinon, il faudrait que je liste tout en premier, et ensuite, je copie, mais c'est faisable

fabounet :
comme info utiles: date de dernière copie, taille du répertoire

je dois rajouter l'affichage de la date de la dernière copie au chargement de l'applet, elle s'affiche déjà après l'update.
par taille du répertoire, je présume que tu parles de la taille du dossier de sauvegarde ?

matttbe :
Et vérifier s'il y a assez de place pour le backup?

ah oui, pas bête, ça éviterai de lancer un backup qui de toute manière ne fonctionnera pas entièrement.

j'ai actuellement rajouté les fonctions mises dans le premier message de mat, j'en suis à la traduction des commentaires

cordialement

ours

-------------------------------------------

Aujourd'hui, journaliste, je viens de me voir offrir un poste de correspondant dans un charmant pays africain au motif que l'actuel titulaire du poste ne supporte plus les menaces de mort. VDM

fabounet, Tuesday 14 January 2014 à 15:21


Subscription date : 30 November 2007
Messages : 17118
euh, je vais revérifier

oui, j'ai bien dit "normalement"


pour la possibilité de lister ou de supprimer un fichier, je pensais tout simplement l'afficher via "xdg-open"

ah oui, que l'applet permette d'ouvrir le dossier, je suis tout à fait d'accord c'est même un candidat pour le clic milieu


par entrée, en clair, si y a 1 fichier de 1k et 1 dossier de 50M, il sera à 50% après le fichier de 1k car à l'heure actuelle, je n'analyse les entrées qu'au fur et à mesure

ok, c'est déjà bien
je pensais à un truc plus évolué (où la barre avance à chaque % de la taille totale, donc meme avec un seul gros fichier, on aurait une barre qui avance). mais ça implique de pouvoir récupérer l'avancement d'une copie, et en langage de script je ne sais pas faire.


par taille du répertoire, je présume que tu parles de la taille du dossier de sauvegarde ?

yep

SQP, Thursday 16 January 2014 à 12:18


Subscription date : 03 July 2010
Messages : 1081
Salut à tous. Je suis de retour, avec encore plein de trucs à poster bientôt.

fabounet :
les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon


Les applets non plantées s’arrêtent bien. Celles qui ont un bug dans la section "on_stop_module" vont rester, ou si elles ne sont plus capables de traiter le message (si bloquées dans une autre section de code).

C'est un truc que j'ai bien pu confirmer ces derniers jours en remettant à jour le binding golang.

Pour la progress bar, un truc simple pour avoir un retour d'info sur l'activité même si on ne sait pas, ou ne veut pas (du peut ramer sur un disque réseau) calculer un pourcentage d'avancement, c'est de faire bouger la barre de façon régulière. Je viens de faire un truc similaire pour un de mes applets en golang (principe du K2000):
func (app *AppletUpdate) activityBar(c <-chan time.Time) {
    var val, step float64
    step = 0.05
    for _ = range c {
        if val+step < 0 || 1 < val+step {
            step = -step
        }
        val += step
        app.RenderValues(val)
    }
}


et le call
    app.AddDataRenderer("progressbar", 1, "")
    defer app.AddDataRenderer("progressbar", 0, "")

    t := time.NewTicker(100 * time.Millisecond)
    defer t.Stop()

    go app.activityBar(t.C) // threaded
    // launch action that can be long.

J'adore le golang.

fabounet, Thursday 16 January 2014 à 17:35


Subscription date : 30 November 2007
Messages : 17118
coucou !

Celles qui ont un bug dans la section "on_stop_module" vont rester

oui mais le dock est censé les tuer quand il démarre.
tu aurais un exemple sous la main ?

pour signaler l'activité d'une icône, il y'a l'animation "busy" qui est bien; mais bon, le mieux ça aurait été que la barre de progression indique le vrai avancement.

Applets | Applets

Subjects Author Language Messages Last message
[Locked] [applet] Backup
ours_en_pluche Français 8 fabounet [Read]
16 January 2014 à 17:35


Glx-Dock / Cairo-Dock List of forums Applets | Applets [applet] Backup Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.