Bonjour,
après quelques errements et grâce aux interventions de Maître Renart et MicP, voilà une expérience d'utilisation d'unison et crontab, pour une sauvegarde sur une sdcard en exfat. Cet exfat engendre des complications pouvant perturber unison, qui peut partir 'bouder'. Crontab n'étant pas très causant quand quelque chose lui déplaît, unison non plus parfois, et mes fichiers étant stockés en partie dans le home, en plus grande partie sur un nas, j'ai séparé le travail 'unison' en deux tâches. Deux scripts de lancement via crontab, stockés dans un répertoire /home/jlg/scripts, ouvrent, selon la programmation temporelle dans crontab, un terminal et la tâche unison, qui me permet de voir ce qui se passe lors du travail 'unison' et de décider lorsqu'il ne sait pas quoi faire.
les paramètres de chaque tâche unison sont répartis dans deux fichiers .prf : default et common.
1/ pour la partie home :
1.1/ default
cat sd400-3861-6530_jlg_default.prf
## .unison/default.prf
## Unison preferences file
## Roots of the synchronization
root = /home/jlg/
root = /media/3861-6530_sd400exfat/save_unison/home/jlg/
## Include common settings for profiles no matter where they are
## invoked (client or server)
include sd400-3861-6530_jlg_common
1.2/ common
cat sd400-3861-6530_jlg_common.prf
##~/.unison/common/sd400-3861-6530_jlg_common.prf
## Paths (directories resp. files) to synchronize
#
#directories
#
path = Musique/mp3
path = photosnote
.
.
path = .android
path = mozilla_firefox_bookmarks
path = thunderbird_abook
path = .thunderbird/27f9cpwm.default/ImapMail/
#files
path = .bashrc
path = .bash_profile
path = .asunder
path = .asunder_album_artist
path = .asunder_album_genre
path = .asunder_album_title
path = .unison/common.prf
path = .unison/default.prf
#path = .unison/unison.log
path = dpkg_liste-paquets.txt
path = 2020-04-15_liste_usr_share_applications.txt
## Data not to be synchronized
#ignore= Path media/jlg/3861-6530/.Trash-1027
#ignore= Path media/jlg/3861-6530/System Volume Information
#ignore= Name media/jlg/3861-6530/.Icon.png
#ignore= Name media/jlg/3861-6530/.directory
## Miscellaneous settings
# −rshargs xxx other arguments (if any) for remote shell command
# rshargs = -C
# Pour les médias amovibles :
mountpoint = mountpoint_controle_sdjlg.txt
# -auto : automatically accept default (nonconflicting) actions :
auto = true
# batch mode: ask no questions at all
#batch = true
# -confirmbigdel ask about whole-replica (or path) deletes (default true)
confirmbigdeletes = true
# fat When this is set to true, Unison will use appropriate options to synchronize ef$
fat = true
# Ne pas tenir compte des permissions :
perms = 0
# dontchmod By default, Unison uses the 'chmod' system call to set the permission bit$
dontchmod = true
#ignorecase xxx When set to true, this flag causes Unison to treat filenames as case i$
ignorecase = true
# Conserver le propriétaire et le groupe propriétaire :
#owner = true
#group = true
# Synchronisation des dates :
times = true
# Conserver la version la plus récente du ficher (à utiliser avec times=true) :
#force = newer
sortbysize = true
sortnewfirst = true
maxthreads = 50
log = true
logfile = /home/jlg/.unison/unison_sd_jlg.log
1.3/ notes :
1.3.1/ si unison rencontre deux fichiers 'identiques' à la casse près, il s'arrête : si un répertoire 'fichiers' de page web complète comporte deux images avec le même nom à la casse près, des fichiers .json 'identiques' : j'ai donc décidé de supprimer tous les répertoires _fichiers , ce qui fait gagner de la place, avec la perte d'images et de déco web ; je garde l'url et le texte.
1.3.2/ mountpoint : les fichiers indiqués, dans lesquels on met ce qu'on veut, sont 1/ à la racine du home et du nas, 2/ à la racine de la sdcard :
à partir de /media/3861-6530_sd400exfat/save_unison
home media mountpoint_controle_sdds411.txt mountpoint_controle_sdjlg.txt
1.3.3/ auto = true
décide automatiquement les cas faciles
1.3.4/ batch = true
unison s'arrête quand il est 'contrarié' et je n'ai pas compris comment être informé de la situation : raison pour laquelle je préfère ne pas le laisser tout seul donc pas de batch pour moi, dans ce cas de figure.
2/ le nas : ds411 :
2.1/ default
cat sd400-3861-6530_ds411_default.prf
## .unison/default.prf
## Unison preferences file
## Roots of the synchronization
root = /media/ds411/
root = /media/3861-6530_sd400exfat/save_unison//media/ds411/
## Include common settings for profiles no matter where they are
## invoked (client or server)
include sd400-3861-6530_ds411_common
2.2/ common
cat sd400-3861-6530_ds411_common.prf
##~/.unison/sd400-3861-6530_ds411_common.prf
#
## Paths (directories resp. files) to synchronize
#
#directories ds411
#
path = 2005-02-10_19_vacances
.
.
## Data not to be synchronized
#ignore= Path /jlg/3861-6530/.Trash-1027
#ignore= Path /jlg/3861-6530/System Volume Information
#ignore= Name /jlg/3861-6530/.Icon.png
#ignore= Name /jlg/3861-6530/.directory
## Miscellaneous settings
# −rshargs xxx other arguments (if any) for remote shell command
# rshargs = -C
# Pour les médias amovibles :
mountpoint = mountpoint_controle_sdds411.txt
# -auto : automatically accept default (nonconflicting) actions :
auto = true
# batch mode: ask no questions at all
#batch = true
# -confirmbigdel ask about whole-replica (or path) deletes (default true)
confirmbigdeletes = true
# fat When this is set to true, Unison will use appropriate options to synchronize efficiently and without error a replica located on a FAT filesystem on a non-Windows machine: do not synchronize permissions (perms = 0); never use chmod ( t dontchmod = true); treat filenames as case insensitive (ignorecase = true); do not attempt to synchronize symbolic links (links = false); ignore inode number changes when detecting updates (ignoreinodenumbers = true). Any of these change can be overridden by explicitly setting the corresponding preference in the profile.
fat = true
# Ne pas tenir compte des permissions :
perms = 0
# dontchmod By default, Unison uses the 'chmod' system call to set the permission bits of files #after it has copied them. But in some circumstances (and under some operating systems), the #chmod call always fails. Setting this preference completely prevents Unison from ever calling #chmod.
dontchmod = true
#ignorecase xxx When set to true, this flag causes Unison to treat filenames as case insensitive—i.e., files in the two replicas whose names differ in (upper- and lower-case) `spelling' are treated as the same file. When the flag is set to false, Unison will treat all filenames as case sensitive. Ordinarily, when the flag is set to default, filenames are automatically taken to be case-insensitive if either host is running Windows or OSX. In rare circumstances it may be useful to set the flag manually.
ignorecase = true
# Conserver le propriétaire et le groupe propriétaire :
#owner = true
#group = true
# Synchronisation des dates :
times = true
# Conserver la version la plus récente du ficher (à utiliser avec times=true) :
#force = newer
sortbysize = true
sortnewfirst = true
maxthreads = 50
log = true
logfile = /home/jlg/.unison/unison_sd_ds411.log
notes : c'est la même chose que pour le home, avec des fichiers mountpoint et log dédiés.
3/ scripts de lancement :
3.1/
#!/bin/bash
DISPLAY=:0.0 /usr/bin/xfce4-terminal -H -e 'bash -c "cd /home/jlg/.unison && unison sd400-3861-6530_jlg_default.prf"' --title="Titre de la fenêtre : Unison lancé"
3.2/
#!/bin/bash
DISPLAY=:0.0 /usr/bin/xfce4-terminal -H -e 'bash -c "cd /home/jlg/.unison && unison sd400-3861-6530_ds411_default.prf"' --title="Titre de la fenêtre : Unison lancé"
4/ crontab :
étant parti sur une sauvegarde journalière et, pour l'instant, n'ayant pas compris pourquoi les scripts unison ne démarrent pas au reboot ; j'ai donc fixé une heure. Je lance également une copie des carnets d'adresse thunderbird (de .thunderbird vers un autre dossier, puis vers la sdcard _ cela peut sans doute se faire directement), de la liste des paquets installés, de la dernière sauvegarde des bookmarks firefox :
# liste paquets installés:
@reboot dpkg --get-selections > /home/jlg/dpkg_liste-paquets.txt
#
# copie firefox_bookmarkbackup
@reboot /home/jlg/scripts/script_bookmarks-firefox
#
# copie thunderbird_abook_carnet-d-adresses
@reboot cp /home/jlg/.thunderbird/27f9cpwm.default/{abook-1.mab,abook.mab} /home/jlg/thunderbird_abook/
@reboot bash /home/jlg/scripts/cp_abook
#
# script_unison_jlg
#@reboot /home/jlg/scripts/script_unison_jlg
0 9 * * * /home/jlg/scripts/script_unison_jlg
#
# script_unison_ds411
#@reboot /home/jlg/scripts/script_unison_ds411
0 9 * * * /home/jlg/scripts/script_unison_ds411
voilà, un peu long, comme mon parcours dans cette 'aventure'
si ça peut aider !
ceux qui m'ont aidé :
https://debian-facile.org/viewtopic.php … 28#p333128
https://debian-facile.org/viewtopic.php … 29#p333129