A l'extinction de mon poste sous Debian 9 j'aimerais lancer le script de sauvegarde placé dans /etc/init.d à cet effet. Je suppose qu'il faut au préalable, du réseau, le système de fichier local et le système distant (un sshfs), ce qui se trouve dans les rubriques correspondantes de l'en-tête du script.
#!/bin/bash
### BEGIN INIT INFO
# Provides: backup
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 0
# Default-Stop:
# Should-Start:
# Should-Stop:
# Short-Description: start backupZ script
### END INIT INFO
# Etablir liste de fichiers modifiés il y moins de n jour (s)
find /home/ -mtime -1 -type f > /tmp/listMAJ
# Créer archive compressée à partir de cette liste et chiffre le document
tar -cjvf /tmp/backup.tar.bz2 -T /tmp/listMAJ
# Se connecter au serveur
mount /media/zdisk 2> /dev/null
# Temporisation pour établir la liaison
sleep 5
# Vérifier sa présence
if [ ! -e "/media/zdisk/test" ]
then
(echo 'Pas se serveur en ligne - arret du script'; date) >> /var/log/backup.log
exit
fi
# Lance le transfert
mv -f /tmp/backup.tar.bz2 /media/zdisk/
umount /media/zdisk
Selon divers sites consultés il convient ensuite de créer le lien symbolique dans le rc.d du niveau de fonctionnement (runlevel) demandé, à l'aide de :
J'utilise également rsync de manière locale pour synchroniser deux arborescences de dossiers. Mais dans le cas présent il s'agit de transférer une archive par jour vers un site distant ; c'est pour cette raison que j'ai opté pour la commande mv.
Quant aux fonctions start|stop de la séquence de boot de systemd, j'avais compris qu'elles étaient définies dans les lignes Default-Start et Default-Stop de l'en-tête du script.
Je mettrai le 0 sur # Default-Stop: et tu auras un script en K… et plus en S ce qui serait plus cohérent.
Ensuite assure toi que le # Provides: corresponde au nom de ton script. En l’occurence backupZ et non backup.
Si ça coince encore on pourrait envisager un repli sur systemd puisque la Debian 9 le supporte.