Bonjour, j'ai un souci avec un script SHELL qui est censé faire ceci dans l'ordre:
-Supprimmer le contenu d'un repertoire.
-Supprimmer certaines entrées dans une BDD mysql.
-Supprimmer les fichiers d'un répertoire si ils sont introuvables dans cette même BDD.
Voici le script:
### BEGIN INIT INFO
# Provides: YouStart
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Supprime les données obsolètes pour YouLol.
# Description: Se lance au demarrage.
### END INIT INFO
#!/bin/sh
# Suppression des fichiers présents dans le repertoire "input"
sudo rm var/www/input/* -Rf
# Suppression des entrées bugguées dans la DB (suite a un crash ou une erreur)
echo "DELETE FROM downloads WHERE url='downloading';" | mysql -u user -ppass youlol
echo "DELETE FROM downloads WHERE url='error';" | mysql -u user -ppass youlol
echo "DELETE FROM downloads WHERE url='';" | mysql -u user -ppass youlol
# Suppression des fichiers non répertoriés dans la BDD et présents dans le dossier output
dir="/var/www/output/*"
for f in ${dir}
do
qry=$(echo "SELECT id FROM downloads WHERE url='${f##*/var/www/output/}';" | mysql -u user -ppass youlol)
q=$(echo ${qry})
if [ "${q}" == "" ]; then
rm ${f}
fi
done
Ce script fonctionne trés bien quand je le lance depuis la console.
Mon souci est que je souhaiterai qu'il se lance automatiquement au démarrage de la machine. j'ai donc utilisé les commmandes suivantes:
sudo chmod 755 /etc/init.d/YouStart
sudo update-rc.d YouStart defaults
Le script se lance correctement au démarrage:
-Vide bien le repertoire "input".
-Supprime bien les entrées vides, égales a "error" ou "downloading" dans la BDD.
-Le problème est qu'il supprime aussi tout le contenu du répertoire "output" alors qu'il ne devrait ne supprimer que les fichiers non
éxistants dans la BDD.
Merci de m'aider si quelqu'un a une idée, PS j'ai essayé de renommer mes liens relatifs dans rc2 3 4 et 5 en S99YouStart mais cela n'as rie changé.
Bonne journée a tous.