#26 Le 15/02/2024, à 21:56
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
Je croyais que c'était encadré à cet endroit. ( trop d'encadrement peut ne pas être mieux )
BK=$Suppression"$Dir"
Je n'ai pas encore bien regardé le dernier problème traitant des fichiers. A priori, cela serait conceptuel.
Dernière modification par geole (Le 15/02/2024, à 21:59)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#27 Le 15/02/2024, à 22:34
- Watael
Re : Utilisation des services pour sauvegarder le contenu du home
- on veut volontairement faire une boucle for sur chaque élément d'une variable dont chaque élément est séparé par un espace
je voudrais bien voir ça, parce que dit comme ça, je ne vois pas.
@geole :
BK="$Suppression$Dir"
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#28 Le 15/02/2024, à 23:00
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
C'est quand même dommage qu'au bout de plus de 50 ans d'existance du concept variable, l'utilisateur doive encore l'encadrer pour traiter un problème d'espace dans la variable.
Ma rectification fut "BK"
Je regarderais demain ta proposition d'encadrement total au lieu de partiel.
Dernière modification par geole (Le 15/02/2024, à 23:02)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#29 Le 15/02/2024, à 23:04
- soshy
Re : Utilisation des services pour sauvegarder le contenu du home
je voudrais bien voir ça, parce que dit comme ça, je ne vois pas.
C'était peut être mal exprimé, mais l'idée c'était
var='a #b c d $12' ; for i in $var ; do echo $i ; done
Et à la reflexion, c'était plus dans l'idée d'exception à la règle de l'encadrement, ici il ne faut pas mettre $var entre guillemets ni simple, ni doubles.
------
C'est quand même dommage qu'au bout de plus de 50 ans d'existance du concept variable, l'utilisateur doive encore l'encadrer pour traiter un problème d'espace dans la variable.
Ça s'appelle conserver la compatibilité ascendante. Tes scripts d'il y a 50ans fonctionnent encore. D'autres préfèrent dire que les défauts de conception sont conservés
Dernière modification par soshy (Le 15/02/2024, à 23:10)
Hors ligne
#30 Le 15/02/2024, à 23:19
- Watael
Re : Utilisation des services pour sauvegarder le contenu du home
Et à la reflexion, c'était plus dans l'idée d'exception à la règle de l'encadrement, ici il ne faut pas mettre $var entre guillemets ni simple, ni doubles.
ok
PS:
$12 n'existe pas; ce sera $1 concaténé à un 2.
le douzième paramètre positionnel, ce sera ${12}
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#31 Le 15/02/2024, à 23:21
- soshy
Re : Utilisation des services pour sauvegarder le contenu du home
non, dans le cas donné ça sera la chaine de caractère $12 (à cause des simple quote justement). C'était vraiment juste des chaines de caractères random, faut pas chercher plus loin^^
Dernière modification par soshy (Le 15/02/2024, à 23:22)
Hors ligne
#32 Le 16/02/2024, à 18:00
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
Bonjour à tous.
Quelques retours
Pour les guillemets. Ils semblent inutiles lorsqu'il n'y a pas d'espace prévus dans les noms. Il peut y avoir des caractères accentués.
Suppression=/media/Savhome
Dir=/home/a/Vidéos ; BK=$Suppression$Dir ;
ls $BK
'z z'
Le fichier présent dans le répertoire est bien listé.
Dir=/home/a/"Suivi Rsync" ; BK=$Suppression$Dir ;
ls $BK
ls: impossible d'accéder à '/media/Savhome/home/a/Suivi': Aucun fichier ou dossier de ce type
ls: impossible d'accéder à 'Rsync': Aucun fichier ou dossier de ce type
ls "$BK"
'Passage Rsync.txt'
On voit que la variable de la commande et celle définissant le fichier doivent être entre-guillemets. Mais que la variable intermédiaire y échappe. Il n'y a bien qu'un fichier à lister.
Dir=/home/a/Suivi Rsync ; BK=$Suppression$Dir ;
ls "$BK"
La commande « Rsync » n'a pas été trouvée, voulez-vous dire :
...
Voir « snap info <nomdusnap> » pour des versions supplémentaires.
a@p:~$ Dir=/home/a/Suivi Rsync ; BK="$Suppression$Dir" ;
ls "$BK"
La commande « Rsync » n'a pas été trouvée, voulez-vous dire :
...
Voir « snap info <nomdusnap> » pour des versions supplémentaires.
'z z'
a@p:~$
Si la variable définissant le fichier n'est pas entre-guillemet, elle est interprétée comme un répertoire ( D'où le fichier listé) et une commande!!!
a@p:~$ Dir=/home/a/"Suivi Rsync" ; BK="$Suppression$Dir" ;
ls $BK
ls: impossible d'accéder à '/media/Savhome/home/a/Suivi': Aucun fichier ou dossier de ce type
ls: impossible d'accéder à 'Rsync': Aucun fichier ou dossier de ce type
a@p:~$
ls "$BK"
a@p:~$ ls "$BK"
'Passage Rsync.txt'
a@p:~$
..........
Dir=/home/a/"Suivi Rsync" ; BK=$Suppression"$Dir" ;
ls $BK
ls: impossible d'accéder à '/media/Savhome/home/a/Suivi': Aucun fichier ou dossier de ce type
ls: impossible d'accéder à 'Rsync': Aucun fichier ou dossier de ce type
a@p:~$
a@p:~$ ls "$BK"
'Passage Rsync.txt'
Bien qu'inutile, on peut mettre des guillemets entourant la seconde variable ou les deux variables transportées par BK=
mets ça au début de ton script
Le problème à traiter n'était pas l'enchainement des commandes mais le paramétrage de la commande rsync
cat>Debug.sh<<EOF
#!/bin/bash
exec 5> debug_output.txt
BASH_XTRACEFD="5"
PS4='\$LINENO: '
set -x
Sortie=/media/Savhome; Suppression=/media/Savhome
Dir="/home/a/Suivi Rsync" ; BK=\$Suppression\$Dir ;
rsync -ab --suffix=".OLD$(date +"-%y%m%d")" --backup-dir=$BK --stats --delete "$Dir/" "$Sortie$Dir" 1>T; grep "created files" T
EOF
sleep 1
chmod +x Debug.sh
cat -n Debug.sh
./Debug.sh
cat debug_output.txt
1 #!/bin/bash
2 exec 5> debug_output.txt
3 BASH_XTRACEFD="5"
4 PS4='$LINENO: '
5 set -x
6 Sortie=/media/Savhome; Suppression=/media/Savhome
7 Dir="/home/a/Suivi Rsync" ; BK=$Suppression$Dir ;
8 rsync -ab --suffix=".OLD-240216" --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete "/home/a/Suivi Rsync/" "/home/a/Suivi Rsync" 1>T; grep "created files" T
rsync: [sender] link_stat "/home/a/Rsync" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]
Number of created files: 0
6: Sortie=/media/Savhome
6: Suppression=/media/Savhome
7: Dir='/home/a/Suivi Rsync'
7: BK='/media/Savhome/home/a/Suivi Rsync'
8: rsync -ab --suffix=.OLD-240216 --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete '/home/a/Suivi Rsync/' '/home/a/Suivi Rsync'
8: grep 'created files' T
667: cat debug_output.txt
a@p:~$
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#33 Le 16/02/2024, à 18:16
- iznobe
Re : Utilisation des services pour sauvegarder le contenu du home
Pour les guillemets. Ils semblent inutiles lorsqu'il n'y a pas d'espace prévus dans les noms. Il peut y avoir des caractères accentués.
je sais pas pourquoi tu te prends la tête a savoir si c' est utile ou pas d' encadrer de " la valeur de la variable , puisque avec ca ne change rien .
il te suffit de mettre les quotes a chaque fois que tu définis une variable , point barre sauf si c ' est un nombre peut être ? et encore .
je me rapelle qu ' on avait eu le même problème dans la discussion pour renommer les fichiers durant laquelle tu avais été d ' une grande aide https://forum.ubuntu-fr.org/viewtopic.php?id=2068750
les ( mauvaises ) habitudes ont parfois la vie dure
ou même très très dure :
6 Sortie=/media/Savhome; Suppression=/media/Savhome
7 Dir="/home/a/Suivi Rsync" ; BK=$Suppression$Dir ;
8 rsync -ab --suffix=".OLD-240216" --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete "/home/a/Suivi Rsync/" "/home/a/Suivi Rsync" 1>T; grep "created files" T
et remplacer la derniere ligne par :
sync -ab --suffix=".OLD-240216" --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete "$Dir" "$Dir" 1>T; grep "created files" T
ne serait pas mieux ? dommage d ' avoir des variables pour ne pas s ' en servir dans ton code .
de plus , si tu définis une variable du nom de BACKUP_DIR , avec des " , pour que ca fonctionne dans tous les cas , ca serait presque professionnel :
sync -ab --suffix=".OLD-240216" --backup-dir=$BACKUP_DIR --stats --delete "$Dir" "$Dir" 1>T; grep "created files" T
Dernière modification par iznobe (Le 16/02/2024, à 18:30)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#34 Le 16/02/2024, à 18:59
- Astrolivier
Re : Utilisation des services pour sauvegarder le contenu du home
il n'y aurais un pas un souci avec les espaces ?
rsync -ab --suffix=".OLD-240216" --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete "/home/a/Suivi Rsync/" "/home/a/Suivi Rsync" 1>T; grep "created files" T
rsync: [sender] link_stat "/home/a/Rsync" failed: No such file or directory (2)
d'où sort ce fichier "/home/a/Rsync" ?? il y aurait pas un truc genre il regarde "/home/a/Suivi" puis "/home/a/Rsync"
ps: je pense que c'est toujours une erreur de mettre des espaces dans les nom de répertoires / fichiers (je n'en laisse que dans les fichiers musique ou vidéo)
ps2 : j'avais proposé les lignes de débug pour le mettre au début d'un script (un fichier) et normalement on est pas sensé voir ces lignes dans le fichier debug_output, mais là avec le "cat>Debug.sh<<EOF" je ne suis pas toute l'idée de la manip. mon idée de débug était de voir la ligne que le shell exécute/interprète réellement et la comparer avec celle écrite (avec les variables, guillemet etc..) et voir où sont les différences, ce qui orienterait sur le problème.
edit :
https://www.systutorials.com/how-to-han … -on-linux/
utilise "--protect-args" voire RSYNC_PROTECT_ARGS comme variable d'environnement
rsync -ab --protect-args --suffix=".OLD-240216" --backup-dir=/media/Savhome/home/a/Suivi Rsync --stats --delete "/home/a/Suivi Rsync/" "/home/a/Suivi Rsync" 1>T; grep "created files" T
Dernière modification par Astrolivier (Le 16/02/2024, à 19:25)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#35 Le 16/02/2024, à 23:19
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
Pour astrolivier.
Le message que tu vois est celui que j'avais du mal à comprendre.
initialement je cherchais du coté de l'émetteur et du récepteur des quotes mal installées .
En fait, il fallait comprendre que les quotes avaient été oubliées ailleurs et comme je n'y avais pas pensé, je ne trouvais pas, ce fut en en mettant option par option, que j'ai vu mon oubli. Depuis c'est rectifié et cela sauvegarde comme je le veux.
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#36 Le 16/02/2024, à 23:25
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
il te suffit de mettre les quotes à chaque fois que tu définis une variable , point barre
Si tu définis une variable du nom de BACKUP_DIR , avec des " , pour que ca fonctionne dans tous les cas , ca serait presque professionnel :
sync -ab --suffix=".OLD-240216" --backup-dir=$BACKUP_DIR --stats --delete "$Dir" "$Dir" 1>T; grep "created files" T
Je connais assez bien grub. Le mot Backup est abrégé par BK. Ce qui est bien suffisant vu ce qui précède.
Je l'ai tellement écrit dans d'autres contextes que j'ai oublié de le mettre entre quote et pas du tout pensé à vérifier à cet endroit. Le message d'erreur n'était pas très clair.
Nota. Je veux bien remplacer "BK$ par $BACKUP_DIR mais l'incident va revenir. Lire ton conseil.
Comme quoi un oubli reste possible. Le trouver peut se révéler compliquer.
Dernière modification par geole (Le 16/02/2024, à 23:45)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#37 Le 16/02/2024, à 23:37
- Watael
Re : Utilisation des services pour sauvegarder le contenu du home
il faut toujours* mettre des guillemets autour des Développement de variables. TOUJOURS !
--
* à moins de savoir pourquoi.
quant aux assignations, vous saurez très vite s'il faut en mettre ou pas :
v=foo bar
bash: bar : commande introuvable
Dernière modification par Watael (Le 16/02/2024, à 23:37)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#38 Le 17/02/2024, à 08:45
- bruno
Re : Utilisation des services pour sauvegarder le contenu du home
Je pense que ce fil serait plus à sa place dans « Terminal, scripts… », non ?
#39 Le 17/02/2024, à 10:59
- geole
Re : Utilisation des services pour sauvegarder le contenu du home
Bonjour.
Le but premier est d'avoir une réponse à la question "comment activer un script à la déconnexion de l'utilisateur?". Pour l'instant, le script est lancé à l'arrêt de l'ordinateur ( assez déplaisant). L'erreur d'écriture $BK au lieu de "$BK" est anecdotique.
Lorsqu'il sera au point, je mentionnerais sa présence dans la documentation RSYNC. Dans ce cas, je mettrais une nouvelle discussion dans la section script et ligne de commande.
AJOUT pour le fun.
root@p:/home/a/Mon repertoire/"/home/a/Mon/"/home/a/Mon/"/home/a/Mon/"/home/a/Mon# ls -ls
total 8
4 -rw-r--r-- 1 a a 6 févr. 12 11:44 'Mon essai.OLD-240215.OLD-240215.OLD-240215.OLD-240215.OLD-240215'
4 -rw-rw-r-- 1 a a 28 févr. 4 19:36 'Mon Fic.OLD-240215.OLD-240215.OLD-240215.OLD-240215.OLD-240215'
root@p:/home/a/Mon repertoire/"/home/a/Mon/"/home/a/Mon/"/home/a/Mon/"/home/a/Mon#
C'est une création par le script avec un répertoire " certainement lorsqu'il y en a eu des mal placés.
Je vois que la conservation des "vieilleries" se passe assez bien
root@p:/media/Oldhome/home# ls -als
total 88
4 drwxr-xr-x 7 root root 4096 févr. 17 11:31 .
4 drwxr-xr-x 3 root root 4096 févr. 6 14:12 ..
4 drwxr-xr-x 30 a a 4096 févr. 17 11:31 a
4 drwxr-xr-x 10 b b 4096 févr. 16 19:58 b
4 drwxr-xr-x 2 root root 4096 févr. 16 19:47 Bureau
0 lrwxrwxrwx 1 a a 14 janv. 6 16:30 Bureau.OLD-240216 -> /home/a/Bureau
4 drwxr-xr-x 9 enfants enfants 4096 févr. 16 19:58 enfants
4 -rw-r--r-- 1 root root 290 févr. 14 12:40 'Passage Rsync.txt.OLD-240214'
4 -rw-r--r-- 1 root root 841 févr. 15 19:59 'Passage Rsync.txt.OLD-240215'
4 -rw-r--r-- 1 root root 203 févr. 16 21:29 'Passage Rsync.txt.OLD-240216'
4 -rw-r--r-- 1 root root 522 févr. 17 09:30 'Passage Rsync.txt.OLD-240217'
4 -rwxr-xr-x 1 root root 3274 févr. 14 11:16 Rsync.par.OLD-240214
4 -rwxr-xr-x 1 root root 3316 févr. 15 16:24 Rsync.par.OLD-240215
4 -rwxr-xr-x 1 root root 3316 févr. 16 18:45 Rsync.par.OLD-240216
8 -rwxr-xr-x 1 root root 6803 févr. 13 19:03 Rsync.sh.OLD-240213
8 -rwxr-xr-x 1 root root 7091 févr. 14 11:48 Rsync.sh.OLD-240214
8 -rwxr-xr-x 1 root root 6919 févr. 15 19:58 Rsync.sh.OLD-240215
8 -rwxr-xr-x 1 root root 6917 févr. 16 18:45 Rsync.sh.OLD-240216
4 drwxr-xr-x 2 root root 4096 févr. 16 19:24 Suivi
root@p:/media/Oldhome/home#
root@p:/media/Oldhome/home#
root@p:/media/Oldhome/home#
root@p:/media/Oldhome/home# cat 'Passage Rsync.txt.OLD-240217'
Traitement Rsync le 24021619
Traitement Rsync le 24021619
Traitement Rsync le 24021619
Traitement Rsync le 24021619
Traitement Rsync le 24021619
Traitement Rsync le 24021620
Traitement Rsync le 24021621
Traitement Rsync le 24021622
Traitement Rsync le 24021623
Traitement Rsync le 24021700
Traitement Rsync le 24021701
Traitement Rsync le 24021702
Traitement Rsync le 24021703
Traitement Rsync le 24021704
Traitement Rsync le 24021705
Traitement Rsync le 24021706
Traitement Rsync le 24021707
Traitement Rsync le 24021709
root@p:/media/Oldhome/home#
Je ne comprend pas trop pourquoi il n'y a pas eu de sauvegarde ce matin à 08 heures.
Je vais commencer à épurer ce fichier de suivi pour ne conserver que ce qui prévu dans le paramétrage.
.
Dernière modification par geole (Le 17/02/2024, à 11:53)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne