Faire 2 archives en vitesse, horodatées, de son pupsave

Post Reply
Message
Author
musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

Faire 2 archives en vitesse, horodatées, de son pupsave

#1 Post by musher0 »

Bonjour !

Colmme le titre l'indique.

Code: Select all

#!/bin/sh
# ./2archives-en-vitesse.sh
# Objectif : créer rapidement deux sauvegardes
# datées de son pupsave, l'une en lz4, l'autre en zip.
#
# Usage : Ouvrir une console dans le répertoire
# de son Toutou | Puppy et taper :
# ./2sauvegardes.sh < NomDuPupsave.?fs > (? peut être 2, 3 ou 4.)
#
# Exemple : ./2sauvegardes.sh xenialsave-arf.2fs
#
# Requis : lz4. Zip est déjà dans Toutou | Puppy.
####
Z="$1";Dat="`date +'%F_%Hh%M'`"
#
lz4 -2f $Z;mv -f $Z.lz4 "$Z-$Dat.lz4"
#
zip -2u -dd $Z.zip $Z 2>/dev/null
mv -f $Z.zip "$Z-$Dat.zip"
Le lz4 requis est joint.

Pour se servir du script ci-dessus,
-- on fait un copier-coller
-- qu'on enregistre
-- dans le répertoire de son Puppy
-- sous le nom de fichier < 2archives-en-vitesse.sh >, et
-- on le rend exécutable.

On s'en sert en tapant en console, par exemple :
./2archives-en-vitesse.sh xenialsave-arf.2fs
(Nom du script corrigé 17-12-06. Merci à Dorothée de m'avoir tapé sur les doigts.)

C'est rapide parce que la compression n'est pas forte: libre à vous de changer
les paramètres < -2 > ci-dessus à un paramètre < -9 >.

C'est utile parce que, le nom des archives étant horodaté, les nouvelles archives
n'écrasent pas les anciennes. On peut composer un script "cron" pour automatiser
la procédure toutes les 2 ou 3 heures. Ainsi, s'il arrive un incident fâcheux, on peut
remettre le Puppy sur pattes en un rien de temps en remettant en service le
pupsave contenu dans la dernière archive. Avec un peu de chance on n'aura pas
perdu grand'chose. Sinon, on élague le lendemain les sauvegardes de la veille.

On crée deux archives, parce qu'on ne fait jamais assez de sauvegardes
généralement, et au cas où une des archives se serait corrompue, on a l'autre,
quand un pépin arrive.

J'espère que cela vous sera utile, au moins pour susciter une réflexion sur les
sauvegardes systématiques.

ALP.
Attachments
lz4-r131_exec.pet
(124.54 KiB) Downloaded 110 times
Last edited by musher0 on Wed 06 Dec 2017, 19:14, edited 2 times in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#2 Post by musher0 »

Rebonjour.

De bonnes archives de sauvegarde m'ont plus d'une fois sauvé l'échine...
C'est pourquoi je me permets d'insister.

Je vous reviens ici avec un petit automate pour faire des sauvegardes en tous
points comme détaillé ci-dessus, mais avec lzop et zip au lieu de lz4 et zip.

Pour une raison que j'ignore, lz4 ne se prêtait pas bien à une automatisation.
Dans mes essais, l'archive lz4 se créait bel et bien au démarrage du Puppy, mais
elle allait se flanquer dans xerrs.log !!! Misère et mystère...

Avec lzop, ce problème n'existe pas, et l'archive créée est à peine plus grosse.

Alors voici. Je pense avoir assez bien commenté les deux scripts qui suivent, alors
je ne me répéterai pas dans ce message. Veuillez lire les commentaires dans les
scripts, s.v.p.

Si vous avez des questions, vous n'avez qu'à revenir les poser ici ?

D'abord le script 2archives-en-vitesse.sh, deuxièmement le script
watch-2archives.sh. Puis je joins une archive pet du vrai lzop (car ceci ne
fonctionnera pas avec le lzop de busybox), et une archive pet prête à installer pour
les deux scripts.

À la bonne vôtre !

2archives-en-vitesse.sh

Code: Select all

#!/bin/sh
# $MBINS/2archives-en-vitesse.sh # où MBINS="/opt/local/bin"
#
# Objectif : créer rapidement deux sauvegardes horodatées
# de son pupsave, l'une en lzop, l'autre en zip.
#
# Usage : Ouvrir une console dans le répertoire de
# son Toutou | Puppy et taper :
# 2sauvegardes.sh < NomDuPupsave.?fs >
# (? peut être 2, 3 ou 4; sans les chevrons !)
#
# Exemple : ./2archives-en-vitesse.sh xenialsave-arf.2fs
#
# Requis : le vrai lzop, et non pas celui de busybox.
# L'utilitaire zip est déjà dans Toutou | Puppy.

# NOTES IMPORTANTES
# 1) -- Si vous utilisez un des scripts compagnons
# /etc/init.d/start_watch-2archives.sh ou $MBINS/watch-2archives.sh,
# le paramètre de fichier est ajouté automatiquement : vous n'avez
# pas besoin de l'inscrire à la main.
#
# 2) --  Au dézippage, Attention de ne pas écraser le pupsave actif.
# Il est suggéré de taper < unzip -l $Z-$Dat.zip > avant, pour éviter les
# accidents. Bien que le nom de l'archive zip soit horodaté, le nom du
# fichier dedans cette archive ne l'est pas.
#
# De même pour le « dézoppage » de l'archive lzop.
#
# 3) -- On pourra aussi songer à stocker ces archives ailleurs, par
# exemple sur :
# Disq2e="`mount | awk '$1 ~ /sd/ { print $3 }' | head -n 2 | tail -1`"
# Je rédigerai ce code-là s'il y a une demande.
#
#
# © Christian L'Écuyer,Gatineau (Qc), Canada, 27-30 oct. 2017. GPL3
# (Alias musher0 [forum Puppy].) # https://opensource.org/licenses/GPL-3.0
#################
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    	This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
##########

Z="$1"
Dat="`date +'%F_%Hh%M'`"
# < %F_%Hh%M > parce que très facile à lire. :-)
lzop -2f -o$Z-$Dat.lzo $Z 2>/dev/null
zip -1 -u -dd $Z-$Dat.zip $Z 2>/dev/null
~~~~~~~~~~~~~~~~~~
watch-2archives.sh

Code: Select all

#!/bin/sh
# $MBINS/watch-2archives.sh # Avec lien dans /root/Startup.
#
# Objectif :
# Fonctionnement automatique du script < 2archives-en-vitesse.sh >.
#
# NOTES
# 1) -- Le présent script se recycle chaque fois que vous retournez
# à la console initiale et revenez dans votre gestionnaire de fenêtres.
#
# 2) -- Une sauvegarde se fait 20 secondes après tout recyclage.
#
# 3) -- Il y a 20 sec. d'attente, pour permettre aux autres scripts dans
# ~/Startup de terminer leur mise en marche. En particulier, le script
# PSync ou équivalent (ntp-simple ou htpdate, par exemple) doit être
# bien « enclenché » pour que le présent script et le script
# < 2archives-en-vitesse.sh > fonctionnent bien.
#
# 4) -- Pour personaliser l'intervalle de temps entre les sauvegardes,
# taper, en console : echo un-nombre-quelconque > ~/interval
# Par exemple :		 echo 9000 > ~/interval.
# Sinon, la sauvegarde se fera aux trois heures (ligne 54 ci-dessous).
#
# 5) -- Il est recommandé de faire un élagage de vos sauvegardes
# tous les deux jours. Selon l'intervalle que vous aurez défini, il peut
# y en avoir énormément, et s'il y a un incident, vous n'aurez besoin
# que d'une des dernières. Sinon, ces archives de sauvegarde finiront
# forcément par occuper trop de place sur votre disque rigide.
#
######
#
# © Christian L'Écuyer,Gatineau (Qc), Canada, 28-30 oct. 2017. GPL3
# (Alias musher0 [forum Puppy].) # https://opensource.org/licenses/GPL-3.0
#################
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#    	This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#    	You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
##########
sleep 20s
if [ -f /root/interval ];then
	Intervalle="`cat /root/interval`"
else
	# Intervalle=3600 secondes  # <=- 1 heure
	# Intervalle=5400 secondes  # <=- 1 heure et demie
	# Intervalle=7200 secondes  # <=- 2 heures
	# 3 heures, en secondes (ou 3 x 60 min. x 60 sec.)
	Intervalle=10800 # <=-
	# Intervalle=14400 secondes  # <=- 4 heures
	# Intervalle=18000 secondes  # <=- 5 heures
	# Intervalle=21600 secondes   # <=- 6 heures
fi

MBINS=/opt/local/bin
PHome="`awk -F"'" '$1 ~ /PUP_HOME/ {print $2}' /etc/rc.d/PUPSTATE`"
PHome="${PHome/dev_save/home}"
PDir="`awk -F"," '$1 ~ /PUPSAVE/ {print $NF}' /etc/rc.d/PUPSTATE | awk -F"/" '{print $2}'`"
PSave="`awk -F"," '$1 ~ /PUPSAVE/ {print $NF}' /etc/rc.d/PUPSTATE | awk -F"/" '{print $NF}' | awk -F"'" '{ print $1 }'`"

cd "$PHome/$PDir"
watch -n $Intervalle -t $MBINS/2archives-en-vitesse.sh $PSave
Attachments
2archives-0.1.pet
Cette archive-ci contient les deux scripts ci-dessus, prêts à l'emploi.
(2.67 KiB) Downloaded 112 times
lzop-1.03-i386.pet
Voici le « vrai » lzop, pas la comédie d'archiveur fournie par busybox...
(53.07 KiB) Downloaded 114 times
watch-2archive-en-vitesse.jpg
Le résultat est encerclé en rouge. J'ai élagué quelques sauvegardes, mais le résultat du fonctionnement de ces scripts devrait apparaître clairement.
(126.49 KiB) Downloaded 190 times
Last edited by musher0 on Sun 05 Nov 2017, 20:13, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Dorothée
Posts: 259
Joined: Tue 27 Nov 2012, 21:03

#3 Post by Dorothée »

Merci beaucoup. Cela peut être vraiment utile.

À bientôt.

Anaxagore
Posts: 62
Joined: Mon 04 Aug 2014, 09:41

#4 Post by Anaxagore »

Bonjour, désolé si ma question est idiote, mais peut-on, avec ce script compresser le fichier de sauvegarde qu’on est en train d’utiliser (j’en ai plusieurs) ? Si j’ai bien compris les commentaires des scripts, on ne peut pas restaurer et utiliser "à chaud" (écraser), le fichier de sauvegarde qu’on est en train d’utiliser ? Est-ce correct ?

Une fois encore, désolé si mes questions sont naïves, mais autant j’utilise régulièrement Puppy (et plus précisément ToOpPy), autant je ne suis qu’un simple utilisateur. Rien à voir avec un quelquonque spécialiste.

Merci d’avance.

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#5 Post by Argolance »

Merci musher0. Peut en effet être très utile.
Cordialement.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#6 Post by musher0 »

Anaxagore wrote:Bonjour, désolé si ma question est idiote, mais peut-on, avec ce script compresser le fichier de sauvegarde qu’on est en train d’utiliser (j’en ai plusieurs) ? Si j’ai bien compris les commentaires des scripts, on ne peut pas restaurer et utiliser "à chaud" (écraser), le fichier de sauvegarde qu’on est en train d’utiliser ? Est-ce correct ?

Une fois encore, désolé si mes questions sont naïves, mais autant j’utilise régulièrement Puppy (et plus précisément ToOpPy), autant je ne suis qu’un simple utilisateur. Rien à voir avec un quelquonque spécialiste.

Merci d’avance.
Salut Anaxagore.

Tes questions ne sont ni naïves, ni idiotes. D'ailleurs tu fais bien de demander, parce
que je ne l'ai pas pensé à le mentionner.

On ne doit jamais restaurer à chaud.

Pour restaurer, il faut procéder à partir d'un autre Toutou ou Linux. On se rend dans le
répertoire du Toutou amoché et on décompresse l'archive désirée. (S.v.p.voir les notes
au bas du message.)

Puis on quitte ce Toutou ou ce Linux, et on redémarre le Toutou ou Puppy qu'on vient
de réparer.

Merci d'avoir posé la question.

Je te souhaite une excellente journée !

~~~~~~~~~~~~~~~~

Notes --
On peut à la rigueur utiliser le même Toutou, après l'avoir redémarré, pourvu
qu'on ne charge pas de pupsave. (Option « 0 » dans le sous-menu des pupsaves
au démarrage)

Si vous ne voyez pas ce sous-menu au cours du démarrage, il n'est peut-être pas
bête, en cas de panne, de se créer un pupsave bidon. Cela forcera ce sous-menu
à apparaître.

On se crée un pupsave bidon comme suit :
-- on ouvre une console dans le répertoire de son Toutou et on tape :

Code: Select all

echo Rien > xenialsave-bidon.2fs
.
Remplacer le « xenial » dans le nom de fichier ci-dessus par le nom de votre Toutou.
Pour un Triton, par exemple, cela deviendra :

Code: Select all

echo Rien > tahrsave-bidon.2fs
Donc pour le cas où on n'a qu'un Toutou sur son ordi, on crée ce pupsave bidon, on
redémarre, et on tape le numéro « 0 » quand apparaît le sous-menu des pupsaves.

On retrouve alors un Toutou « vierge », tel qu'il était avant que vous ayez ajouté des
applis, modifié des positions d'icônes, etc.

Dans votre répertoire Toutou, vous verrez sans doute plusieurs sauvegardes, de
diverses dates et heures. Choisissez-en-une dont vous êtes sûr qu'elle est « saine ».
Peut-être choisir l'avant-dernière plutôt que la dernière, ou même une faite la veille,
si vous n'avez pas remarqué quand au juste votre pauvre Toutou s'est « blessé ».

Vous faites la restauration à partir d'une sauvegarde en zip avec l'utiliaire PupZip ou
xArchiver. Cela prend quelques secondes. Soyez patient si votre pupsave est gros ! ;)
Ou encore en console avec l'utilitaire unzip, commande :

Code: Select all

unzip NomDeFichier.zip
ou l'utilitaire lzop, commande :

Code: Select all

lzop -d NomDeFichier.lzo
(le lzop dans Puppy par défaut est ok pour « dézopper ».)

Ensuite, on quitte et on redémarre le Toutou réparé, bien sûr, comme auparavant.

Vérifiez que la copie est bonne, même s'il vous manque vos tout derniers ajouts.
Sinon, il faudra recommencer ce processus avec une sauvegarde plus ancienne.

Une fois qu'on a effectué la restauration et qu'on est sûr que tout va bien, on peut
se débarrasser du pupsave bidon. Ou le laisser, pour la commodité de la chose.

~~~~~~~~~~~~~~~~

* Il va de soi que si le pupsave d'un Toutou ou Puppy fonctionne bien, on n'a pas
besoin de le remplacer par une copie antérieure.
Last edited by musher0 on Sun 05 Nov 2017, 20:26, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Anaxagore
Posts: 62
Joined: Mon 04 Aug 2014, 09:41

#7 Post by Anaxagore »

Bonjour et merci pour cette réponse détaillée. Et bien sûr aussi un grand merci pour ces scripts fort pratique.

Bonne continuation

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#8 Post by musher0 »

Anaxagore wrote:Bonjour et merci pour cette réponse détaillée. Et bien sûr aussi un grand merci pour ces scripts fort pratique.

Bonne continuation
De rien ! :)
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Dorothée
Posts: 259
Joined: Tue 27 Nov 2012, 21:03

#9 Post by Dorothée »

Bonjour Musher0,

si le script s'appelle "2archives-en-vitesse.sh"

on ne doit pas plutôt taper

Code: Select all

./2archives-en-vitesse.sh XXXsave.2fs
au lieu de

Code: Select all

./2sauvegardes.sh XXXsave.2fs
?

Ou alors je n'ai pas tout compris.

À bientôt,

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#10 Post by musher0 »

Dorothée wrote:Bonjour Musher0,

si le script s'appelle "2archives-en-vitesse.sh"
on ne doit pas plutôt taper

Code: Select all

./2archives-en-vitesse.sh XXXsave.2fs
au lieu de

Code: Select all

./2sauvegardes.sh XXXsave.2fs
?

Ou alors je n'ai pas tout compris.

À bientôt,
Si, si, t'as tout compris. Désolé. Ce doit être chez moi un début d'Alzheimer...
(Nom du script corrigé 17-12-06. Merci à Dorothée de m'avoir tapé sur les doigts.
Voir 1er message.)
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Dorothée
Posts: 259
Joined: Tue 27 Nov 2012, 21:03

#11 Post by Dorothée »

Hello Musher0,

Alzheimer... Tout de suite les grands mots... comme tu y vas... On oublie tous de changer un nom récurrent dans des scripts ou des tutos en oubliant qu'on a modifié le premier...

Je me sers régulièrement de ton script que je trouve formidable (je l'ai appelé simplement sauvegarde.sh). Je n'ai gardé que la ligne zip parce que je trouve qu'une sauvegarde zip me suffit. La console met une phrase un peu curieuse (preciseXXX.4fs.zip not found...) mais ça fonctionne très bien.

Merci, à bientôt,
Attachments
console_sauvegarde.jpg
(47.1 KiB) Downloaded 83 times

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#12 Post by musher0 »

Allô.

Tu es gentille (à propos de l'Alzheimer) !

C'est parce qu'au départ, j'avais mis < zip -2u -dd ... etc. >
u pour "update" (mise à jour).

Je pensais toujours sauvegarder dans le même zip, puis j'ai changé d'idée, j'ai
décidé d'ajouter la date et l'heure au nom de fichier.

Or avec date et heure, on a un zip qui a un nom à lui, donc on ne le met jamais à
jour parce qu'il n'existe pas encore.

Enlève le "u" à côté du "-2", et l'erreur s'en ira.

Merci de me le signaler.

À+
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#13 Post by musher0 »

Ok. Je crois qu'il est temps de suggérer une mise à jour.

Automatisation des sauvegardes, 2e version.

Merci à toutes et à tous de vos observations. Je les ai incluses.

La différence principale est qu'il n'y aura pas de sauvegarde si on en déjà fait une
dans l'heure. Si une sauvegarde a été faite dans l'heure « 14 h », il n'y en aura
pas d'autre dans l'heure « 14 h ».

L'algorythme est primitif, parce que si une sauvegarde a été faite à 14 h 59 et
que vous recyclez votre gestionnaire de fenêtres ou X à 15 h 01, une sauvegarde
sera quand même faite. Mais bon, c'est mieux que de faire une sauvegarde à
chaque recyclage de votre gest. de fen. ou de X.

Si vous avez des idées pour améliorer cet algorythme, je vous écoute !!!

Je vous fais grâce du code ici, mais lisez-le, s.v.p., il y a plein de commentaires
utiles dedans. (Du moins je crois.)

@Dorothée : tu vas vouloir mettre un dièse devant la ligne lzop !!! ;)

@tous : n'oubliez pas que vous pouvez moduler la fréquence des sauvegardes en
créant un petit fichier /root/interval, avec un des paramètres suivants :

Code: Select all

            # Intervalle=3600 secondes  # <=- 1 heure
	# Intervalle=5400 secondes  # <=- 1 heure et demie
	# Intervalle=7200 secondes  # <=- 2 heures
	# 3 heures, en secondes (ou 3 x 60 min. x 60 sec.)
	Intervalle=10800 # <=- Par défaut, 3 heures
	# Intervalle=14400 secondes  # <=- 4 heures
	# Intervalle=18000 secondes  # <=- 5 heures
	# Intervalle=21600 secondes   # <=- 6 heures
Si ce petit fichier n'existe pas, l'intervalle par défaut est de trois heures. Si on veut
une sauvegarde aux quatre heures, par exemple, on tapera en console :

Code: Select all

echo 14400 > /root/interval
Continuez à m'en donner des nouvelles, j'apprécie beaucoup.

À+
Attachments
sauv2archives-0.1.pet
(3.27 KiB) Downloaded 107 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#14 Post by musher0 »

Rebonjour.

Voici une 3e version.

Cette version a la même fonction que précédemment, sauf que j'ai trouvé
comment faire attendre le script au moins deux heures au lieu d'une si on relance
X ou le gestionnaire de fenêtres.

Les sauvegardes se feront donc
-- s'il n'y a pas d'archive horodatée dans le répertoire;
-- si les dernières ont été faites il y a plus de deux heures.

J'ai aussi remanié, non... refondu, le code !

J'ai testé chez moi. Ça fonctionne bien. Mais il serait bien d'obtenir confirmation
de la part d'au moins un(e) autre utilisateur(trice). Faut pas vous gêner ! :)

À+
~~~~~~~~~~~~~
Pour les curieux :

Code: Select all

#!/bin/sh
# $MBINS/2archives-en-vitesse.sh # où MBINS="/opt/local/bin"
# Version 3.
#
# Objectifs :
# 1) créer rapidement deux sauvegardes horodatées de son
# pupsave, l'une en lzop, l'autre en zip. On en fait deux au
# cas où.
#
# 2) Ne faire de sauvegardes que si on n'en a pas fait pendant
# les deux dernières heures. # <«=- Nouveau
# Sans cela, une sauvegarde se ferait chaque fois qu'on recycle
# le gest. de fen. ou X.
#
# Remarque --
# Ce n'est pas bien malin, parce que si la dernière sauvegarde a
# été faite à 14 h 59 et que, par ex., vous recyclez X à 17 h 01,
# une sauvegarde sera faite. Mais c'est déjà ça !
###
#
# Usage manuel : Ouvrir une console dans le répertoire de
# son Toutou | Puppy et taper :
# ./2archives-en-vitesse.sh < NomDuPupsave.?fs >
# (? peut être 2, 3 ou 4; sans les chevrons !)
#
# Exemple : ./2archives-en-vitesse.sh xenialsave-arf.2fs
#
# Requis : un lzop et l'utilitaire zip sont déjà dans Toutou | Puppy.

# NOTES IMPORTANTES
# 1) -- Si vous utilisez un des scripts compagnons
# /etc/init.d/start_watch-2archives.sh ou $MBINS/watch-2archives.sh,
# le paramètre de fichier est ajouté automatiquement : vous n'avez
# pas besoin de l'inscrire à la main.
#
# 2) --  Au dézippage, Attention de ne pas écraser le pupsave actif.
# Il est suggéré de taper < unzip -l $Z-$Dat.zip > avant, pour éviter les
# accidents. Bien que le nom de l'archive soit horodaté, le nom du
# fichier dans l'archive ne l'est pas.
#
# De même pour le « dézoppage » de l'archive lzop.
#
# [...]Licence GPL3, etc. [...]
####
Z="$1" # On transforme $1 dès que possible.

ZipZop () { zip -5 -dd $Z-$Dat.zip $Z 2>/dev/null;
	lzop -5f -o$Z-$Dat.lzo $Z 2>/dev/null; }
# Sous forme de fonction.

Dat="`date +'%F_%Hh%M'`" # %F, c'est la date d'aujourd'hui au complet.
JourCour="`date '+%d'`" # %d, c'est le jour d'aujourd'hui.
HCour="`date '+%H'`" # %H, c'est l'heure qu'il est maintenant.

# On repêche l'heure à laquelle on a fait les dernières sauvegardes :
DernH="`ls -Algot *save-*.?fs-20* 2>/dev/null | head -1 | awk '{ print $NF }' | awk -F"_" '{ print $NF }' | awk -F"h" '{ print $1 }'`"

if [ "$DernH" = "" ];then # $DernH est vide la 1ère fois ou s'il n'y a rien.
	ZipZop # Alors on fait les sauvegardes sans plus tarder.
else
	Diff="`expr $HCour - $DernH`"
	if [ "$Diff" -gt "2" -o "$Diff" -lt "0" ];then
	# On doit prévoir que (la) $Diff(érence) sera négative au changement de date.
	# Autrement, au changement de date, le script prend congé !
		ZipZop
	fi
fi # set +xe
Attachments
DeuxArchives-0.2.pet
Cette 3e version porte le no 0.2 parce que la toute première version n'était pas
numérotée. (Il n'est pas nécessaire de comprendre cela pour utiliser ce script qui
peut vous sauver l'échine !)
(3.57 KiB) Downloaded 97 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Dorothée
Posts: 259
Joined: Tue 27 Nov 2012, 21:03

#15 Post by Dorothée »

Bonjour Musher0,

merci pour ces compléments, bien que personnellement, je ne sois pas intéressée par des sauvegardes automatiques. Une de temps en temps me suffit amplement.

Par contre, tu proposes de compléter le script (de base, sans automatisation) pour que la sauvegarde soit faite directement ailleurs. Cela m'intéresse, car je travaille souvent avec des cartes mémoires qui n'ont pas beaucoup d'espace libre. Aurais-tu une phrase de script à rajouter (le premier script tout simple me va très bien) dans ce but?

Merci d'avance,

cordialement,

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#16 Post by musher0 »

Salut, Dorothée.

Puisque tu me passes commande, je vais devoir tenir parole !!! :D

« Ailleurs », pour toi, c'est où ?
Je veux dire « machin » dans sd-« machin » ? (sda, sdb, sdc, sdd ?)
Et puis, il est numéroté, ton sd-« machin » ? 1, 2 ,3 ou ... ?
Ou ta clé USB serait formatée en UDF, peut-être, qui tolère mal les numéros ?

Pas trop compliqué, quand même, pour que je puisse reproduire ton « set-up »
sur ma machine.

Hourra ! Mon premier contrat en informatique !!! ;)
Bénévole, mais quand même. Et tout droit du Brésil !!!
Je fais une croix dans mon agenda !!!

À+
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#17 Post by musher0 »

Allô, Dorothée.

Exprès pour toi ! (Et pour les Puppyistes qui ont un besoin semblable.)

Il faut d'abord te placer dans le répertoire où se trouve le pupsave de ton Puppy.
Puis tu ouvres une console à cet endroit.

La ligne de commande est :

Code: Select all

2archives-en-vitesse-2a.sh  xenialsave-waf2.2fs c8
Tu remplaces les paramètres en position 1 et 2 selon tes besoins. Tu mets en position 1 le
nom de ton pupsave et en position 2 la partie signifiante de la partition où tu veux sauvegarder.

Le script modifié est joint. Tu m'en donnes des nouvelles ?

À+
Attachments
Exemple-de-session.jpg
(92.16 KiB) Downloaded 54 times
2archives-en-vitesse-2a.zip
Déballer dans un répertoire comme /root/my-applications/bin et rendre exécutable.
(1.73 KiB) Downloaded 56 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Dorothée
Posts: 259
Joined: Tue 27 Nov 2012, 21:03

#18 Post by Dorothée »

Bonsoir Musher (le finaud)

Merci pour ton script.

entretemps, j'avais trouvé une solution qui a l'air de marcher et qui finalement, n'est pas éloignée de la tienne, sauf que c'est le script que je modifie, pas la commande (mais passer par la commande c'est mieux).

J'ai simplement rajouté:

Code: Select all

/mnt/sdb1/
qui est l'adresse de ma clé (évidemment, qu'il faut modifier selon les endroits de réception du fichier).

Le fichier zip atterrit bien sur ma clé. C'est un script "spécial Dorothée", c'est-à-dire bricole de chez bricole. Mais ça marche.

Até logo,

Code: Select all

Z="$1";Dat="`date +'%F_%Hh%M'`"
#
zip -2 -dd $Z.zip $Z 2>/dev/null
mv -f $Z.zip /mnt/sdb1/"$Z-$Dat.zip"
J'ai fait une remarque erronée en mélangeant les pinceaux: sdc sdb. Je l'enlève.

(Un peu plus tard)

Ton script est vraiment bien. Je l'adopte. Merci beaucoup!

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#19 Post by musher0 »

Hé! Tu peux acheter tes bricoles chez Bricole, c'est ok. Tu fais comme tu veux !!!
Seulement... ils ont pas l'air fortauds sur les variables, dans ta religion !!! ;)

Bye.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Post Reply