J'ai depuis longtemps un script bash, qui sert à faire mes backups. Seulement, je crois que depuis que je suis passé à zsh, j'ai un comportement bizarre.
# On copie le tiddly wiki se trouvant sur le bureau.
cp -v $REPERTOIRE_SOURCE/Desktop/tiddly.html $REPERTOIRE_DESTINATION/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Recherche des doublons locaux..."
yes 1 | fdupes -rd /media/data/musique > /dev/null #recherche des doublons de la musique locale
yes 1 | fdupes -rd /media/data/images > /dev/null #recherche des doublons sur les images locales
notify-send "Recherche des doublons locaux achevée"
Entre l'exécution du cp et de l'autre bloc, le shell s'arrête. Je n'ai pas de prompt, mais je dois faire un Ctrl+C avant que le script ne continue de s’exécuter. Est-ce que vous sauriez comment comment empêcher ça ?
Peux ton voir l'intégralité du script ?
Essaye d'enlever la redirection de fichier "2>>" pour voir ce que cela donne
Tu n'aurait pas un alias sur cp ?
Essaye en préfixant ton cp par command : command cp ...
#!/bin/bash
#script de sauvegarde
#génère aussi un fichier nombre.txt pour compter les médias.
#1ère ligne: nombre de films
#deuxième ligne: nombre de musiques
#troisième ligne: nombre d'images
# On teste si le script est lancé en root avec id -u. Si on n'est pas root, on
# quitte.
#if [[ $(/usr/bin/id -u) -ne 0 ]]
#then
#echo "Le script doit être lancé en root"
#exit;
#fi
# On teste si le répertoire racine existe bien. S'il n'existe pas, le disque
# est absent et on quitte.
REPERTOIRE_DESTINATION="/run/media/djipey/BASE-1/.Save/"
if [ -e "$REPERTOIRE_DESTINATION" ]
then
mkdir -p $REPERTOIRE_DESTINATION/`date '+%d_%m_%Y'`
echo "On crée le répertoire daté pour la sauvegarde"
else
echo "Warning: disque de sauvegarde absent!"
exit;
fi
# On définit les répertoires source et destination
REPERTOIRE_SOURCE="/home/djipey"
backup="`date '+%d_%m_%Y'`"
echo $REPERTOIRE_DESTINATION
# On efface les logs du jour même, dans le cas d'une sauvegarde effectuée dans la journée.
rm $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Logs du jour supprimés"
#création des répertoires pour la sauvegarde du jour
mkdir -v $REPERTOIRE_DESTINATION/$backup/vnstat 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
mkdir -v $REPERTOIRE_DESTINATION/$backup/vim_perso 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
mkdir -v $REPERTOIRE_DESTINATION/$backup/minecraft 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
# On synchronise les documents sur le SSD avec les documents sur le disque dur interne
rsync -Parv --delete $REPERTOIRE_SOURCE/documents /media/data 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv --delete $REPERTOIRE_SOURCE/.local/share/data/"Mendeley Ltd./Mendeley Desktop" /media/data/documents && mv /media/data/documents/Mendeley\ Desktop /media/data/documents/Mendeley_backup 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Synchronisation locale des documents terminée"
# Option -a de cp, préserve les droits et est récursif
sudo cp -av /etc $REPERTOIRE_DESTINATION/$backup/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av /var/lib/vnstat/ $REPERTOIRE_DESTINATION/$backup/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av /usr/share/vim $REPERTOIRE_DESTINATION/$backup/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av $REPERTOIRE_SOURCE/.vim/ $REPERTOIRE_DESTINATION/$backup/vim_perso 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av $REPERTOIRE_SOURCE/.vimrc $REPERTOIRE_DESTINATION/$backup/vim_perso/vimrc 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av $REPERTOIRE_SOURCE/.minecraft/* $REPERTOIRE_DESTINATION/$backup/minecraft/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -av $REPERTOIRE_SOURCE/.local/share/data/Mendeley\ Ltd./Mendeley\ Desktop/ $REPERTOIRE_DESTINATION/$backup/Mendeley_backup 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "/etc, vnstat, minecraft, Mendeley et vim sauvegardés"
##on copie la sources.list, les ppa dans sources.list.d, et on liste ttes les applications installées
##cp -v /etc/apt/sources.list $REPERTOIRE_DESTINATION/backup 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
##cat /etc/apt/sources.list.d/*.list >> $REPERTOIRE_DESTINATION/backup/sources.list 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
##dpkg --get-selections > $REPERTOIRE_DESTINATION/backup/selections.txt 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
cp -a /etc/pacman.conf $REPERTOIRE_DESTINATION/$backup 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
pacman -Q | cut -d ' ' -f 1 > $REPERTOIRE_DESTINATION/$backup/all_paquets.txt 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
pacman -Qqe > $REPERTOIRE_DESTINATION/$backup/explicit_installed_paquets.txt 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Liste des paquets installés générée"
# On copie le tiddly wiki se trouvant sur le bureau.
cp -v $REPERTOIRE_SOURCE/Desktop/tiddly.html $REPERTOIRE_DESTINATION/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
## Analyse anti-virus avant sauvegarder
#notify-send "Début de l'analyse antivirus avant copie"
#clamscan -rv /media/data/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#clamscan -rv $REPERTOIRE_SOURCE 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#notify-send "Analyse antivirus terminée"
notify-send "Recherche des doublons locaux..."
yes 1 | fdupes -rd /media/data/musique > /dev/null #recherche des doublons de la musique locale
#yes 1 | fdupes -rd /media/data/images > /dev/null #recherche des doublons sur les images locales
#notify-send "Recherche des doublons locaux achevée"
#synchronisation des logs de pidgin, des dossiers pour firefox et thunderbird (courrier), de la musique, des documents, des documents pour Dropbox, et des images
notify-send "Synchronisation dossiers essentiels..."
rsync -Parv $REPERTOIRE_SOURCE/.purple/logs/* $REPERTOIRE_DESTINATION/chat_logs 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv --delete $REPERTOIRE_SOURCE/.mozilla/* $REPERTOIRE_DESTINATION/mozilla 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#rsync -Parv --delete $REPERTOIRE_SOURCE/.thunderbird/* $REPERTOIRE_DESTINATION/thunderbird 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv --delete $REPERTOIRE_SOURCE/VirtualBox\ VMs/* $REPERTOIRE_DESTINATION/VirtualBox\ VMs 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv --delete /media/data/musique/* $REPERTOIRE_DESTINATION/musique 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv /media/data/images/* $REPERTOIRE_DESTINATION/images 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
rsync -Parv $REPERTOIRE_SOURCE/documents/* $REPERTOIRE_DESTINATION/documents 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#rsync -Parv /media/data/Dropbox/* $REPERTOIRE_DESTINATION/Dropbox 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Synchronisation dossiers essentiels achevée"
#notify-send "Backup du site du BDE"
#cp -av /opt/lampp/htdocs/ $REPERTOIRE_DESTINATION/backup_site_bde_$backup/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#on lance un fdupes sur les images, la musique et les films
notify-send "Recherche des doublons images distants..."
#yes 1 | fdupes -rd $REPERTOIRE_DESTINATION/images > /dev/null
notify-send "Recherche des doublons images achevée"
#notify-send "Recherche des doublons films..."
#yes 1 | fdupes -rd /media/BASE-1/ > /dev/null
#notify-send "Recherche des doublons films achevée"
notify-send "synchronisation du home..."
# On sauvegarde tout le home, sauf les dossiers ci-dessus
# Penser à de temps en temps lancer la commande suivante avec l'option --delete
rsync -Pav --delete --progress --exclude ".local/share/Trash/*" --exclude ".thumbnails/" --exclude "documents/" --exclude ".mozilla/" --exclude ".thunderbird/" --exclude "Desktop/" --exclude ".purple/" --exclude "VirtualBox VMs" --exclude "informatique/python/bibli/screens/" $REPERTOIRE_SOURCE $REPERTOIRE_DESTINATION/home 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
notify-send "Synchronisation du /home achevée"
# On dresse la liste des films
ls -R $REPERTOIRE_DESTINATION/.. > $REPERTOIRE_DESTINATION/../liste.txt
notify-send "Liste des films générée"
#notify-send "Copie des documents dans Dropbox"
## On copie le bashrc dans Dropbox du home pour future synchronisation
#cp -v $REPERTOIRE_SOURCE/.bashrc $REPERTOIRE_SOURCE/Dropbox/Documents/scripts\ et\ autres/bashrc 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
## On copie tous les scripts du home dans Dropbox pour future synchronisation
#cp -v $REPERTOIRE_SOURCE/scripts_perso/* $REPERTOIRE_SOURCE/Dropbox/Documents/scripts\ et\ autres/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
## On synchronise le dossier conky dans Dropbox pour future synchronisation
#rsync -arv $REPERTOIRE_SOURCE/conky/ $REPERTOIRE_SOURCE/Dropbox/conky/ 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
## On copie toutes les lettres et tous les CV de Dropbox vers documents/
#cp -rv $REPERTOIRE_SOURCE/Dropbox/Documents/Latex/"CV et lettres" $REPERTOIRE_SOURCE/documents 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
# On copie la liste des sources et la liste des applications installées dans Dropbox pour future synchronisation
#cp -v /etc/apt/sources.list $REPERTOIRE_SOURCE/Dropbox/Documents/scripts\ et\ autres/sources.list 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
#dpkg --get-selections > $REPERTOIRE_SOURCE/Dropbox/Documents/scripts\ et\ autres/selections.txt 2>> $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log
## 2>>> pour ajouter les erreurs à la fin d'un fichier, >> pr rediriger à la fin d'un fichier. > pour rediriger seulement dans un nouveau fichier
## Partie pour le comptage des médias
#find /run/media/djipey/BASE-1/ -type f -name "*avi" -and -not -path \*/.\* > $REPERTOIRE_SOURCE/temp.txt #trouve tous les fichiers avi et les liste
#find /run/media/djipey/BASE-1/ -type f -name "*mkv" -and -not -path \*/.\* >> $REPERTOIRE_SOURCE/temp.txt # trouve tous les fichiers mkv et les liste
#find /run/media/djipey/BASE-1/ -type f -name "*mp4" -and -not -path \*/.\* >> $REPERTOIRE_SOURCE/temp.txt # trouve tous les fichiers mkv et les liste
#wc -l temp.txt | cut -d "t" -f 1 > $REPERTOIRE_SOURCE/conky/nombre.txt #écrit le nombre de films dans nombre.txt
#ls $REPERTOIRE_DESTINATION/musique/ | wc -l >> $REPERTOIRE_SOURCE/conky/nombre.txt #trouve le nombre de musique et l'écrit dans nombre.txt
#find $REPERTOIRE_DESTINATION/images -type f | wc -l >> $REPERTOIRE_SOURCE/conky/nombre.txt # trouve le nombre d'images et l'écrit dans nombre.txt
#rm $REPERTOIRE_SOURCE/temp.txt #supprime le fichier temporaire du comptage
##touch log_`date '+%d_%m_%Y'`
##sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com +la suite chiffres
notify-send "Sauvegarde terminée. Vérifiez les logs"
nohup gedit $REPERTOIRE_DESTINATION/log_errors_save_`date '+%d_%m_%Y'`.log > /dev/null
Est-ce qu'il y a moyen de faire poursuivre le script après les fdupes ?
Ton script est lancé via #!/bin/bash et non zsh, donc je crains que cela ne soit qu'une coïncidence.
C'est facile de vérifier si cela vient de fdupes, affiche un message avant : echo "..."
Et si c'est bien lui le coupable essaye la commande fdupes depuis ton terminal