#1 Le 02/07/2012, à 13:53
- jmsth
Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
Bonjour,
J'essaie d'arrêter MySql dans un script qui s'exécute durant la nuit et fait une sauvegarde ce certaines données.
J'utilise la commande suivante:
cd /
usr/bin/service mysql stop 1>/dev/null 2>>/var/log/backup/backupError.log
Si j'exécute cette ligne (sans les 1> et 2>) en ligne de commande tout fonctionne.
Lorsque j'exécute le script, mon log contient le message suivant:
usr/bin/service : 123: exec: stop : not found
Quelqu'un à une idée ?
Dernière modification par jmsth (Le 11/07/2012, à 14:13)
Hors ligne
#2 Le 09/07/2012, à 06:58
- nesthib
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
peux-tu donner le retour de la commande :
echo $PATH
ainsi que le contenu du fichier de log après ajout de la commande suivante dans ton script :
echo $PATH >/tmp/log
est-ce que cela fonctionne si tu utilises /etc/init.d/mysql à la place service ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 10/07/2012, à 15:00
- jmsth
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
Voici le $PATH:
/usr/bin:/bin
etc/init.d/mysq ne fonctionne pas mieux. Voici le résultat dans le log:
etc/init.d/mysql: 54: etc/init.d/mysql: initctl: not found
Je n'ai pas mis /etc mais etc étant donné que le script fait un cd / auparavant.
Merci pour ton aide
Jean-Marc
Hors ligne
#4 Le 10/07/2012, à 16:10
- nesthib
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
Pourquoi utilises-tu « cd / » suivi de ta commande sans « / » initial au lieu de mettre directement le chemin absolu ? (je dois avouer que c'est une pratique étrange)
Tu n'as pas donné le retour du PATH depuis le script ? N'en as-tu aucun ?
Peux-tu donner le retour des commandes :
ls /etc/init/
ls /etc/init.d/
et le contenu du fichier :
/etc/init/mysql.conf
Dernière question, pour effectuer ces opérations tu as besoin des droits root. Comment lances-tu ton script en root ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 10/07/2012, à 16:32
- jmsth
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
J'utilise CD / parce que mon script contient aussi un tar de certaines données et qu'il y avait certains problèmes si je n'utilisais pas le répertoire absolu.
Le contenu de la variable $PATH que tu m'as demandée et qui est retournée par le script est /usr/bin:/bin
Je ne lance pas le script manuellement: il démarre durant la nuit à partir d'un cron; il est donc en root par défaut.
Voici ce que ls /etc/init/ retourne:
acpid.conf mysql.conf
alsa-restore.conf networking.conf
alsa-store.conf network-interface.conf
anacron.conf network-interface-container.conf
apport.conf network-interface-security.conf
atd.conf network-manager.conf
avahi-daemon.conf nmbd.conf
binfmt-support.conf plymouth.conf
bluetooth.conf plymouth-log.conf
console.conf plymouth-splash.conf
console-setup.conf plymouth-stop.conf
container-detect.conf plymouth-upstart-bridge.conf
control-alt-delete.conf procps.conf
cron.conf rc.conf
cryptdisks-enable.conf rcS.conf
cryptdisks-udev.conf rc-sysinit.conf
cups.conf resolvconf.conf
dbus.conf rfkill-restore.conf
dmesg.conf rfkill-store.conf
failsafe.conf rsyslog.conf
failsafe-x.conf setvtrgb.conf
flush-early-job-log.conf shutdown.conf
friendly-recovery.conf smbd.conf
hostname.conf tty1.conf
hwclock.conf tty2.conf
hwclock-save.conf tty3.conf
hybrid-gfx.conf tty4.conf
irqbalance.conf tty5.conf
lightdm.conf tty6.conf
modemmanager.conf udev.conf
module-init-tools.conf udev-fallback-graphics.conf
mountall.conf udev-finish.conf
mountall-net.conf udevmonitor.conf
mountall-reboot.conf udevtrigger.conf
mountall-shell.conf ufw.conf
mounted-debugfs.conf upstart-socket-bridge.conf
mounted-dev.conf upstart-udev-bridge.conf
mounted-proc.conf ureadahead.conf
mounted-run.conf ureadahead-other.conf
mounted-tmp.conf wait-for-state.conf
mounted-var.conf whoopsie.conf
Voici ce que ls /etc/init.d/ retourne:
acpid hwclock-save resolvconf
acpi-support irqbalance rfkill-restore
alsa-restore kerneloops rfkill-store
alsa-store killprocs rsync
anacron lightdm rsyslog
apache2 modemmanager saned
apparmor module-init-tools sendsigs
apport mysql setvtrgb
atd networking single
avahi-daemon network-interface skeleton
binfmt-support network-interface-container smbd
bluetooth network-interface-security speech-dispatcher
bootlogd network-manager stop-bootlogd
brltty nmbd stop-bootlogd-single
console-setup ondemand sudo
cron plymouth udev
cryptdisks plymouth-log udev-fallback-graphics
cryptdisks-early plymouth-splash udev-finish
cups plymouth-stop udevmonitor
dbus plymouth-upstart-bridge udevtrigger
dmesg postfix ufw
dns-clean pppd-dns umountfs
failsafe-x procps umountnfs.sh
friendly-recovery pulseaudio umountroot
gdomap rc unattended-upgrades
grub-common rc.local urandom
halt rcS whoopsie
hostname README winbind
hwclock reboot x11-common
Le fichier /etc/init/mysql.conf contient:
# MySQL Service
description "MySQL Server"
author "Mario Limonciello <superm1@ubuntu.com>"
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]
respawn
respawn limit 2 5
env HOME=/etc/mysql
umask 007
# The default of 5 seconds is too low for mysql which needs to flush buffers
kill timeout 300
pre-start script
#Sanity checks
[ -r $HOME/my.cnf ]
[ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
/lib/init/apparmor-profile-load usr.sbin.mysqld
LC_ALL=C BLOCKSIZE= df --portability /var/lib/mysql/. | tail -n 1 | awk '{ exit ($4<4096) }'
end script
exec /usr/sbin/mysqld
post-start script
for i in `seq 1 30` ; do
/usr/bin/mysqladmin --defaults-file="${HOME}"/debian.cnf ping && {
exec "${HOME}"/debian-start
# should not reach this line
exit 2
}
statusnow=`status`
if echo $statusnow | grep -q 'stop/' ; then
exit 0
elif echo $statusnow | grep -q 'respawn/' ; then
exit 1
fi
sleep 1
done
exit 1
end script
Merci pour ton aide
Jean-Marc
Hors ligne
#6 Le 10/07/2012, à 17:40
- nesthib
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
Si le PATH est bien celui retourné par le script, il manque des chemins importants.
Ajouter ceci au script ou à crontab devrait résoudre ton problème :
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NB. même si du dois faire un « cd / » je t'encourage à utiliser le chemin absolu pour tes binaires au lieu de ce « etc/… », ça ne prend pas beaucoup plus de place et ça fait beaucoup plus propre.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 11/07/2012, à 14:13
- jmsth
Re : Arrêt et démarrage MySql dans un script: erreur 123 [Résolu]
Tout fonctionne.
Le problème venait, effectivement, du PATH.
Merci beaucoup.
Jean-Marc
Hors ligne