Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/04/2024, à 19:57

Eirikr70

Intégration de screen dans un script shell

Bonjour à tous, ô Experts d'Ubuntu,
Je me permets de vous solliciter afin d'obtenir vos majestueux conseils sur le problème suivant, que vous ne mettrez que quelques secondes à résoudre : j'ai construit un script de sauvegarde de mes données en mode crypté sur une clé USB, que je mets à votre disposition ci-dessous. Comme il prend un peu de temps (48h au premier passage), je le lance dans un écran dont je me déconnecte. Sauf que quelquefois j'oublie de le lancer dans ledit écran, et je dois donc laisser mon client allumé jusqu'au terme du script.
Y a-t-il un moyen d'intégrer la mise en oeuvre dans un écran distinct et de le détacher de l'écran principal dans le script lui-même ?
Merci ô Grands sages.
Et voici le script promis :

#!/bin/bash

mount -U "b822c738-c4b0-428b-b587-55c7f94a8a24" /mnt

mkdir /srv/copie-ext

gocryptfs -config /home/eric/sauvegarde/gocryptfs.conf -passfile /home/eric/sauvegarde/.pass /mnt /srv/copie-ext

rsync -artucv --delete-during --progress /srv/hdd/nas /srv/copie-ext

fusermount -u /srv/copie-ext

rm -r /srv/copie-ext

umount /mnt

Hors ligne

#2 Le 06/04/2024, à 00:07

geole

Re : Intégration de screen dans un script shell

Bonsoir.
Une solution.
Sauvegarde le script dans un fichier
Rends le fichier exécutable
et  lance en détachant l'écran

 $HOME/fichier   & 

ou fais un service systemd afin de ne pas oublier le lancement.


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

En ligne

#3 Le 06/04/2024, à 09:50

k3c

Re : Intégration de screen dans un script shell

bonjour

si tu veux un exemple de service systemd utilisateur tu peux t'inspirer de mon exemple avec Captvty

https://forum.ubuntu-fr.org/viewtopic.p … #p22724118


Archlinux sur Xiaomi Air 13

Hors ligne

#4 Le 06/04/2024, à 12:37

geole

Re : Intégration de screen dans un script shell

Bonjour
A noter  que la commande status d'un service permet de retrouver son exécution passée y compris les erreurs.
A noter que si le service est utilisateur, il ne peut utiliser la commande sudo.
     Il faut donc modifier les commandes MOUNT et UMOUNT    et donner l'autorisation d'écriture  à l'utilisateur dans /srv    A mon avis  c'est un mauvais choix de point de montage. On devrait pouvoir monter chez l'utilisateur quitte à exclure ce répertoire   dans la commande RSYNC
Une astuce:   Cela serait pas mal de mettre une étiquette parlante dans la partition externe . C'est plus pratique qu'un UUID
     

Voici un début de réécriture de ta sauvegarde en service

a@p:~$ mkdir -pv .config/systemd/user
cat <<EOF>.config/systemd/user/crypt.service  
[Unit] 
Description=Duplication chiffrée du HOME.
DefaultDependencies=no
[Service]
Type=simple
ExecStartPre=echo  "Suivi des sauvegardes chiffrées de l'utilisateur"   %u ) | sudo tee -a  /dev/kmsg
ExecStartPre=mkdir /srv/copie-ext
ExecStartPre=udisksctl mount -b /dev/disk/by-uuid/b822c738-c4b0-428b-b587-55c7f94a8a24
ExecStartPre=gocryptfs -config /home/%u/sauvegarde/gocryptfs.conf -passfile /home/%u/sauvegarde/.pass /media/%u/b822c738-c4b0-428b-b587-55c7f94a8a24 /srv/copie-ext
ExecStart=rsync -artucv --delete-during --progress /srv/hdd/nas /srv/copie-ext
ExecStopPost=echo  La sauvegarde est terminée  | sudo tee -a  /dev/kmsg
ExecStopPost=fusermount -u /srv/copie-ext
ExecStopPost=rm -r /srv/copie-ext
ExecStopPost=udisksctl unmount -b /dev/disk/by-uuid/b822c738-c4b0-428b-b587-55c7f94a8a24
EOF
systemctl --user daemon-reload;
systemctl --user enable crypt
systemctl --user start crypt
systemctl --user -l status crypt
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
 
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.
Job for crypt.service failed because the control process exited with error code.
See "systemctl --user status crypt.service" and "journalctl --user -xeu crypt.service" for details.
× crypt.service - Duplication chiffrée du HOME.
     Loaded: loaded (/home/a/.config/systemd/user/crypt.service; static)
     Active: failed (Result: exit-code) since Sat 2024-04-06 12:57:31 CEST; 7ms ago
    Process: 145364 ExecStartPre=echo Suivi des sauvegardes chiffrées de l'utilisateur a ) | sudo tee -a /dev/kmsg (code=exited, status=0/SUCCESS)
    Process: 145365 ExecStartPre=mkdir /srv/copie-ext (code=exited, status=0/SUCCESS)
    Process: 145366 ExecStartPre=udisksctl mount -b /dev/disk/by-uuid/b822c738-c4b0-428b-b587-55c7f94a8a24 (code=exited, status=0/SUCCESS)
    Process: 145401 ExecStartPre=gocryptfs -config /home/a/sauvegarde/gocryptfs.conf -passfile /home/a/sauvegarde/.pass /media/a/b822c738-c4b0-428b-b587-55c7f94a8a24 />
    Process: 145415 ExecStopPost=echo La sauvegarde est terminée | sudo tee -a /dev/kmsg (code=exited, status=0/SUCCESS)
    Process: 145416 ExecStopPost=fusermount -u /srv/copie-ext (code=exited, status=1/FAILURE)
        CPU: 43ms

avril 06 12:57:30 p echo[145364]: Suivi des sauvegardes chiffrées de l'utilisateur a ) | sudo tee -a /dev/kmsg
avril 06 12:57:31 p udisksctl[145366]: Mounted /dev/sdb1 at /media/a/b822c738-c4b0-428b-b587-55c7f94a8a24
avril 06 12:57:31 p gocryptfs[145407]: Using config file at custom location /home/a/sauvegarde/gocryptfs.conf
avril 06 12:57:31 p gocryptfs[145407]: Cannot open config file: open /home/a/sauvegarde/gocryptfs.conf: no such file or directory
avril 06 12:57:31 p systemd[2269]: crypt.service: Control process exited, code=exited, status=11/n/a
avril 06 12:57:31 p echo[145415]: La sauvegarde est terminée | sudo tee -a /dev/kmsg
avril 06 12:57:31 p fusermount[145416]: fusermount: entry for /srv/copie-ext not found in /etc/mtab
avril 06 12:57:31 p systemd[2269]: crypt.service: Control process exited, code=exited, status=1/FAILURE
avril 06 12:57:31 p systemd[2269]: crypt.service: Failed with result 'exit-code'.
avril 06 12:57:31 p systemd[2269]: Failed to start Duplication chiffrée du HOME..
lines 1-21/21 (END)

A noter l'erreur actuelle  probablement liée  au fait que mon home n'est pas chiffré.    Je ne peux donc aller plus loin.
" Cannot open config file: open /home/a/sauvegarde/gocryptfs.conf: no such file or directory"

Dernière modification par geole (Le 06/04/2024, à 12: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

En ligne