Pour éviter de perdre mes photos en cas d'incendie ou de vol, j'ai décidé de les sauvegarder sur AWS Deep Glacier. C'est très bon marché (20 centimes par mois pour ~150 Go) et sans doute assez écologique puisque les fichiers sont stockés hors ligne (il faut plusieurs jours pour les restaurer)
C'est super, mais nous sommes en 2021 et mon bled n'est toujours pas couvert par la fibre. Ce qui veut dire que j'ai 80Ko/s en upload les bons jours. Il faut donc un bon moment pour synchroniser mes photos quand j'en ajoute. Le problème, c'est que saturer l'upload ralentit énormément toute navigation.
J'ai donc eu l'idée de faire un petit script qui détecte si je suis derrière mon PC, et ne fait tourner l'upload que si je ne suis pas là. Ça marche super bien !
Je me dis que ça peut servir à d'autres, j'en ai donc fait un programme indépendant qui peut faire tourner n'importe quoi. Il suffit de préfixer sa commande avec mon programme :
idle_do.py commande_gourmande_en_resources [arguments...]
C'est plus un prototype qu'un truc vraiment abouti, mais ça marche. C'était aussi l'occasion d'utiliser dbus et logind (je suis sur Arch), et je dois dire que ça marche bien, notamment grâce à l'excellent pydbus.
Tout est là: https://github.com/joelthelion/idle_do
Comments welcome !
# Félicitations !
Posté par _kaos_ . Évalué à 10.
Salut,
Parfois, surtout si c'est sur son temps personnel, chercher la perfection est simplement un moyen de ne pas arriver au bout du projet ;)
Donc bravo pour avoir fait cette version !
Matricule 23415
[^] # Re: Félicitations !
Posté par JoeltheLion (site web personnel) . Évalué à 8.
Merci ! C'est vrai que c'est devenu plus difficile de finir des projets depuis la naissance des enfants :)
[^] # Re: Félicitations !
Posté par Colin Pitrat (site web personnel) . Évalué à 5.
Mais du coup ça ne marche bien que si tu as un seul ordi. Idée d'extension : gérer plusieurs clients permettant de décider si l'ensemble du "parc" est idle ou non :)
[^] # Re: Félicitations !
Posté par JoeltheLion (site web personnel) . Évalué à 3.
Effectivement, c'est une grosse limitation. Mais dans ce cas, ce n'est plus du tout le même problème, et il faudrait sans doute avoir la main sur le routeur pour faire les choses bien. C'est tout à fait possible mais dans mon cas ma solution me suffit.
# sauvegardes
Posté par Julien Jorge (site web personnel) . Évalué à 7.
Je fais aussi mes sauvegardes sur aws, avec le même débit. De mon côté ça tourne la nuit.
J'avais regardé les tarifs de glacier et de souvenir il y avait un coût non négligeable lié aux nombre de requêtes. Comme je fais un
rclone
chaque nuit sur un gros dossier je craignais que le nombre de requêtes soit trop élevé, du coup j'envoie tout sur S3. Ça me coûte environ un dollar par mois.Par rapport à ton script, que se passe-t-il quand tu reprends la main, la copie est en pause ? Interrompue ? Chiffres-tu tes données avant de les envoyer ?
[^] # Re: sauvegardes
Posté par JoeltheLion (site web personnel) . Évalué à 7.
Effectivement, les tarifs de Glacier (et d'AWS en général) sont un peu compliqués, et il faut faire attention aux coûts cachés. C'est en partie pour ça que je fais un simple
aws s3 sync
sur mon dossier photos: c'est simple et seuls les nouveaux fichiers sont transférés. Mais du coup, pas de chiffrement. Pour l'historique je le délègue à S3.Pour en revenir à mon script, je suspends tout simplement la copie quand le PC est actif avec un SIGSTOP (équivalent à un Ctrl-Z dans ton terminal si je ne me trompe pas), et je la relance quand il est inactif avec SIGCONT. Il y a parfois un timeout réseau lié à la durée d'inactivité, mais awscli s'en sort très bien et retombe sur ses pattes sans problème.
[^] # Re: sauvegardes
Posté par Nicolas Boulay (site web personnel) . Évalué à 5.
J'avais tenter de faire la même chose avec rclone sur OVH pour utiliser le chiffrement local des fichiers (leur nouveau serveur S3 public cloud). Mais impossible de configurer le truc. Est-ce une spécificité OVH ou est-ce que les CLI des clouds sont bien mieux foutu ?
J'ai regardé finalement regardé https://www.pcloud.com qui semble bien plus simple. Qu'en pensez-vous ?
"La première sécurité est la liberté"
[^] # Re: sauvegardes
Posté par chimrod (site web personnel) . Évalué à 2. Dernière modification le 04 janvier 2021 à 09:49.
J'utilise OVH et leur "cold storage" avec duplicity en suivant leur guide et ça fonctionne. Faut juste s'assurer d'être dans la bonne version de l'application (qui n'est arrivée dans debian qu'assez récemment je crois).
[^] # Re: sauvegardes
Posté par Jona . Évalué à 2.
Quels sont les tarifs sur OVH ?
Les seuls tarifs que j'ai trouvé sont "$0.045 /month/GB" ce qui est de l'ordre du facteur 30 par rapport à AWS Deep Glacier (les 0.2€ pour 150 GB).
[^] # Re: sauvegardes
Posté par chimrod (site web personnel) . Évalué à 5.
Si l'on veut comparer avec AWS Deep Glacier, il faut regarder les tarifs du cloud archive :
[^] # Re: sauvegardes
Posté par babytux (site web personnel) . Évalué à 1.
Je l'utilise actuellement et cela marche.
(tenant_key, user_key, pwd_key, password et password2 on été remplacés)
mon fichier de conf rclone
[OVH-Cloud]
type = swift
env_auth = false
auth_version = 3
auth = https://auth.cloud.ovh.net/v3/
endpoint_type = public
tenant_domain = default
tenant = tenant_key
domain = default
user = user_key
key = pwd_key
region = SBG
[OVH-Cloud-crypt]
type = crypt
remote = OVH-Cloud:mycloud-datas-sec
filename_encryption = standard
directory_name_encryption = true
password = v6YwNNT55nnJ0C5l3gxutoMXN_gU
password2 = Eud_hZcgdWhgmDwVXGxhz9yIg
commande pour sauvegarder :
rclone sync -v --fast-list --config="/etc/rclone.conf" --log-file="/tmp/rclone.txt" --contimeout=30s --transfers=2 /srv/hdd2t/mycloud-datas OVH-Cloud-crypt:mycloud-datas-sec
pour restaurer :
rclone sync -v --fast-list --config="/etc/rclone.conf" --log-file="/tmp/rclone.txt" --contimeout=30s --transfers=2 OVH-Cloud-crypt:mycloud-datas-sec /srv/hdd2t/mycloud-datas
J'y suis arrivé en tâtonnant. Mais en gros on récupère un fichier rclone.conf depuis OHV ; puis à l'aide de "rclone config" on crée une entrée chiffrée qui as en "remote" l'entrée distante OVH.
[^] # Re: sauvegardes
Posté par cosmocat . Évalué à 2.
On peut avoir une idée du volume et de l'offre sélectionnée pour se faire un avis.
Car mes photos/videos commencent à prendre pas mal de place. De l'ordre de 400Go :(
[^] # Re: sauvegardes
Posté par Julien Jorge (site web personnel) . Évalué à 2.
Oui,
rclone size
me dit:Ce que confirme le tableau de bord sur AWS.
La facture de décembre est de $1.09. Je ne crois pas avoir sélectionné d'option en dehors d'avoir créé un compte AWS. Ensuite j'ai créé le bucket, je l'ai mis en ue-west et pour la classe de stockage c'est « Unizone – Accès peu fréquent ».
# Super idée !
Posté par Arvil . Évalué à 5.
Super idée, simple, efficace, le code est super lisible merci beaucoup !
Reste plus qu'à l'implémenter en VHDL, Rust (bien sûr), ADA, Haskell…
[^] # Re: Super idée !
Posté par Serge Julien . Évalué à 5.
Et GOTO++, aussi. Surtout!
# débit d'escargot, donc passer en 4G
Posté par palm123 (site web personnel) . Évalué à 7. Dernière modification le 04 janvier 2021 à 07:29.
et ton bled risque de ne pas être couvert de suite, c'est bien connu, le message "la fibre arrive l'an prochain dans votre commune" a tendance à se répéter pendant 10 ou 15 ans…
:-)
un routeur 4G, une carte SIM limitée à 100 GB par mois pour une vingtaine d'Euros ou moins, une visite sur cartoradio.fr pour voir où sont les antennes 4G les plus proches, et tu devrais avoir au moins du 20 ou 30 Mb/s, sauf si tu es au fond d'une vallée
https://routeur4g.fr/
pour plus de détails
ウィズコロナ
# Question technique
Posté par gUI (Mastodon) . Évalué à 4.
Je me mets au Python depuis peu, alors je suis allé voir le code. Je pense avoir tout compris, sauf ceci, tu pourrais expliquer stp ?
GLib.MainLoop().run()
Merci !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Question technique
Posté par JoeltheLion (site web personnel) . Évalué à 6.
C'est une boucle d'évènements : en gros une boucle infinie qui va écouter les évènements en provenance de dbus et appeler ton code (dans notre cas la méthode
handler
de l'objetjob
) au besoin.[^] # Re: Question technique
Posté par gUI (Mastodon) . Évalué à 3.
Ok. Du coup je suis passé par là pour avoir un plus d'infos (si ça peut servir à d'autres…)
Merci !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# Dbus ?
Posté par xulops (site web personnel) . Évalué à 6. Dernière modification le 04 janvier 2021 à 16:29.
Pourquoi être passé par DBUS pour savoir si le PC glande ?
Je ne critique pas du tout, ça marche comme ça en donnant un code très court et clair.
C'est juste par curiosité car je ne serais pas intuitivement passé par là, en grande partie parce que je n'y connais rien à DBUS (que je confonds toujours avec ce salopiot d'IBUS qui plante souvent). D'ailleurs, est-ce que DBUS est présent dans toutes les grandes distribs ? j'en sais même rien.
A l'ancienne, j'aurais juste consulté /proc/avg si c'est un idle global, et un peu creusé /proc/net/dev s'il avait fallu regarder les débits réseaux.
[^] # Re: Dbus ?
Posté par JoeltheLion (site web personnel) . Évalué à 9.
Bonne question !
En fait, je voulais quelque chose qui s'active quand je ne suis physiquement pas devant mon PC et pas spécialement quand le PC est inactif. Ça ne me dérange pas que la synchronisation soit active quand le PC est en train de faire autre chose en arrière-plan, ce qui arrive souvent chez moi.
Et c'est exactement ce que logind propose : des évènements qui se déclenchent quand l'écran se met en veille ou que l'utilisateur verrouille sa session.
DBus n'est que le moyen de s'abonner à ces évènements, et je dois dire que c'est assez chouette et que ça gagnerait à être connu. C'est beaucoup mieux il me semble de s'abonner à des évènements plutôt que de poller régulièrement des fichiers dans /proc/.
[^] # Re: Dbus ?
Posté par xulops (site web personnel) . Évalué à 4. Dernière modification le 05 janvier 2021 à 17:56.
Réponse super claire, qui décrit d'ailleurs mieux le besoin que le titre du journal.
Du coup, le nom n'est peut-être pas très bien choisi, car en fait le cpu n'est pas forcément en idle, en fait la machine peut éventuellement être très occupée à faire mille et unes choses (envoyer 50000 mails, servir des pages web, …) que ça se déclencherait quand même, tant que tu n'es pas devant.
Comme je ne suis pas doué pour les noms, je ne peux pas aider. Donc au pire tu laisses comme ça, au mieux tu fais un concours/sondage pour trouver un nom parfait pour cet outil qui "exécute une tache que tu ne saurais voir".
[^] # Re: Dbus ?
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3.
idle
n'est pas un mot réservé au CPU, le nom va bien 😉# Tuto glacier ?
Posté par jice (site web personnel) . Évalué à 2. Dernière modification le 06 janvier 2021 à 17:59.
super outil et bonne idée pour l'utilisation de dbus ; le code est intéressant à lire.
existe-t-il un tuto pour mettre en place une sauvegarde sur glacier ?
j'en suis à l'étape : compte créé, regarde le dashboard avec les yeux écarquillés ;)
[^] # Re: Tuto glacier ?
Posté par cosmocat . Évalué à 2.
Le plus facile est sûrement d'utiliser
rclone
. Et du coup, jeter un oeil à la doc rclone peut-être un bon début:https://rclone.org/s3/
Mais c'est vrai que connaitre les bons paramètres serait cool…
[^] # Re: Tuto glacier ?
Posté par jice (site web personnel) . Évalué à 1.
merci mais de ce que je lis il faut avoir une instance S3, y backuper avec rclone, puis avoir une règle qui transitionne les données sur Glacier. Ce que je veux c'est sauvegarder directement sur glacier, pour le moment je le fais avec SAGU (https://simpleamazonglacieruploader.github.io/) mais c'est très manuel.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.