Script non fonctionnel : command not found

Fermé
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 - 5 oct. 2017 à 23:33
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 - 11 oct. 2017 à 20:44
Bonsoir,
J'ai créer un script avec les conseils d'une personne qui a répondu à un précédent post sur ce même forum, sauf que lorsque je le lance, je rencontre quelques soucis.
Quelqu'un pourrait me dire pourquoi et comment y remédier ?
Ci joint le script :
#!/bin/sh
rpm -ihv MySQL-shared-compat-5.1.49-1.rhel5.i386.rpm;
yum -y install mysql mysql-server;
yum -y install httpd;
yum -y install php;
yum -y install libexpat.so.0;
service mysqld start;
service httpd start;
chkconfig --levels 235 mysqld on;
chkconfig --levels 235 httpd on;
cd /usr/lib;
cp libcrypto.so.10 libcrypto.so.6;
cp libssl.so.10 libssl.so.6;
echo "==============================================================="
echo "= Open an OTHER TERMINAL and do the folowing steps on i ="
echo "==============================================================="
echo "You have now to create a SQL user;"
echo "Enter command mysql -u root -p;"
echo "Press Enter (no password);"
echo "Enter this command : GRANT ALL ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';"
echo "Enter this command : flush privileges;"
echo "Enter this command : CREATE DATABASE newproject_data;"
echo "Enter this command : CREATE DATABASE newproject_db;"
echo "Enter this command : CREATE DATABASE newproject_db_auth;"
echo "Enter this command : CREATE DATABASE newproject_post;"
echo "Enter this command : mysql -u root -p newproject_data < newproject_data.sql;"
echo "Press enter;"
echo "Enter this command : mysql -u root -p newproject_db < newproject_db.sql;"
echo "Press enter;"
echo "Enter this command : mysql -u root -p newproject_db_auth < newproject_db_auth.sql;"
echo "Press enter;"
echo "Enter this command : mysql -u root -p newproject_post < newproject_post.sql;"
echo "Press enter;"


Si joint le retour :

http://hpics.li/3b03cf3


Comment me débarrasser du command not found et pourquoi est-il là ?

Merci par avance !
A voir également:

2 réponses

Judge_DT Messages postés 29395 Date d'inscription vendredi 5 février 2010 Statut Modérateur Dernière intervention 23 octobre 2021 9 617
Modifié le 6 oct. 2017 à 04:03
Salut,

Si tu écris ligne par ligne, inutile de placer des ";" à la fin de chaque ligne... et le problème peut même potentiellement venir de là, je dirai.

Enfin, pour le "yum install" tu peux laisser le tout sur une seule ligne, ça fera plus court et plus efficace que 5 ou 10 exécutions consécutives de "yum" qui rechargera à chaque fois sa base...

D'ailleurs, en testant le script, quelques trucs qui peuvent être améliorées :

- Tu installes un paquet ".rpm" mais il n'existe pas de base sur CentOS, il faut au préalable le télécharger.... -> Automatise la récupération de ce "paquet" via le script et installes-le ensuite, ça t'évitera de devoir le récupérer à la main avant d'exécuter le script.

- La "yum -y install libexpat.so.0" est erronée également, pas de "libexpat.so.0" qui n'existe, c'est plutôt lié au paquet "expat" tout court, donc ça serait "install expat"

Cf :
[root@localhost ~]# rpm -ql expat
/usr/bin/xmlwf
/usr/lib64/libexpat.so.1
/usr/lib64/libexpat.so.1.6.0


- Le chemin vers /usr/lib, n'est pas toujours valable, en l'occurrence chez moi les librairies sont stockées dans /usr/lib64, puisque le système est installé en 64bits, tout comme les librairies que ton script cherche à copier. Si ton script a vocation à être utilisé sur les deux architectures, il faudrait vérifier l'existence des librairies dans l'un ou l'autre répertoire et n'effectuer la copie que si le fichier existe ; quitte à retourner une erreur si le fichier n'est aucunement présent.

La sortie de ton script partiellement corrigé chez moi :

[root@localhost ~]# ./script.sh
Modules complémentaires chargés : fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.kinamo.be
* epel: nl.mirror.babylon.network
* extras: mirror.kinamo.be
* updates: mirror.kinamo.be
Le paquet 1:mariadb-5.5.56-2.el7.x86_64 est déjà installé dans sa dernière version
Aucun paquet mysql-server disponible.
Le paquet httpd-2.4.6-67.el7.centos.2.x86_64 est déjà installé dans sa dernière version
Le paquet php-5.4.16-42.el7.x86_64 est déjà installé dans sa dernière version
Le paquet expat-2.1.0-10.el7_3.x86_64 est déjà installé dans sa dernière version
Rien à faire
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit not found.
Redirecting to /bin/systemctl start httpd.service
erreur lors de la lecture d'informations sur le service mysqld : Aucun fichier ou dossier de ce type
Note : transfert de la requête par « systemctl enable httpd.service ».
cp: impossible d'évaluer « libcrypto.so.10 »: Aucun fichier ou dossier de ce type
===============================================================
= Open an OTHER TERMINAL and do the folowing steps on i =
===============================================================
You have now to create a SQL user;
Enter command mysql -u root -p;
Press Enter (no password)
Enter this command : GRANT ALL ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';
Enter this command : flush privileges;
Enter this command : CREATE DATABASE newproject_data;
Enter this command : CREATE DATABASE newproject_db;
Enter this command : CREATE DATABASE newproject_db_auth;
Enter this command : CREATE DATABASE newproject_post;
Enter this command : mysql -u root -p newproject_data < newproject_data.sql;
Press enter
Enter this command : mysql -u root -p newproject_db < newproject_db.sql;
Press enter
Enter this command : mysql -u root -p newproject_db_auth < newproject_db_auth.sql;
Press enter
Enter this command : mysql -u root -p newproject_post < newproject_post.sql;
Press enter


Le script :

#!/bin/sh
#rpm -ihv MySQL-shared-compat-5.1.49-1.rhel5.i386.rpm
yum -y install mysql mysql-server httpd php expat
service mysqld start
service httpd start
chkconfig --levels 235 mysqld on
chkconfig --levels 235 httpd on
cd /usr/lib && cp libcrypto.so.10 libcrypto.so.6 && cp libssl.so.10 libssl.so.6
echo "==============================================================="
echo "= Open an OTHER TERMINAL and do the following steps on i ="
echo "==============================================================="
echo "You have now to create a SQL user;"
echo "Enter command mysql -u root -p;"
echo "Press Enter (no password)"
echo "Enter this command : GRANT ALL ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';"
echo "Enter this command : flush privileges;"
echo "Enter this command : CREATE DATABASE newproject_data;"
echo "Enter this command : CREATE DATABASE newproject_db;"
echo "Enter this command : CREATE DATABASE newproject_db_auth;"
echo "Enter this command : CREATE DATABASE newproject_post;"
echo "Enter this command : mysql -u root -p newproject_data < newproject_data.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_db < newproject_db.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_db_auth < newproject_db_auth.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_post < newproject_post.sql;"
echo "Press enter"


Enfin, sur les installations récentes de "MySQL Server" ainsi que MariaDB, il faut exécuter "mysql_secure_installation" si l'on veut le faire fonctionner après son installation, cela permettant de configurer le compte root et supprimer les accès distants au root, ainsi que les bases accessibles par n'importe qui sur les MySQL. De plus, sur les versions récentes de CentOS, "mysql-server" n'existe pas/plus, mais "mariadb-server" oui et il s'agît d'un fork libre de mysql, qui est d'ailleurs plus performant et est également devenu le serveur "mysql" par défaut sous Debian. Il fonctionne à l'identique (ou presque).

~ Savoir écouter, c'est posséder, outre le sien, le cerveau des autres... disait Léonard de Vinci.
1
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 10
6 oct. 2017 à 07:56
Parfait.
Rien à redire. Clair et efficace. Merci !
0
Judge_DT Messages postés 29395 Date d'inscription vendredi 5 février 2010 Statut Modérateur Dernière intervention 23 octobre 2021 9 617 > lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017
6 oct. 2017 à 12:09
Pas de souci ;-)
0
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 10
7 oct. 2017 à 10:28
Bonsoir,
J'en viens à un autre problème.
Sauriez-vous m'aider à résoudre ceci :

Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
Usage: httpd {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}
chkconfig version 1.3.49.5 - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: chkconfig [--list] [--type <type>] [name]
chkconfig --add <name>
chkconfig --del <name>
chkconfig --override <name>
chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>
chkconfig version 1.3.49.5 - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: chkconfig [--list] [--type <type>] [name]
chkconfig --add <name>
chkconfig --del <name>
chkconfig --override <name>
chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>

Que j'obtiens suite à l'éxecution de ce script :

#!/bin/sh
#rpm -ihv MySQL-shared-compat-5.1.49-1.rhel5.i386.rpm
yum -y install mysql mysql-server httpd php expat
service mysqld start
service httpd start
chkconfig --levels 235 mysqld on
chkconfig --levels 235 httpd on
cd /usr/lib && cp libcrypto.so.10 libcrypto.so.6 && cp libssl.so.10 libssl.so.6
cd /usr/lib && cp libcrypto.so.10 /usr/lib64/libcrypto.so.6 && cp libssl.so.10 /usr/lib64/libssl.so.6
echo "================================================================="
echo "= Open an OTHER TERMINAL and do the following steps on it ="
echo "================================================================="
echo "You have now to create a SQL user;"
echo "Enter command mysql -u root -p;"
echo "Press Enter (no password);"
echo "Enter this command : GRANT ALL ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';"
echo "Enter this command : flush privileges;"
echo "Enter this command : CREATE DATABASE newproject_data;"
echo "Enter this command : CREATE DATABASE newproject_db;"
echo "Enter this command : CREATE DATABASE newproject_db_auth;"
echo "Enter this command : CREATE DATABASE newproject_post;"
echo "Enter this command : mysql -u root -p newproject_data < newproject_data.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_db < newproject_db.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_db_auth < newproject_db_auth.sql;"
echo "Press enter"
echo "Enter this command : mysql -u root -p newproject_post < newproject_post.sql;"
echo "Press enter"



Ci joint une photo :
https://img-19.ccm2.net/lS8HPT1WxvS3Bp7RvgB9b_tGpHw=/b29573434c26490c8edb2b8fda65127d/tmp/centos_script_error.png
0
Judge_DT Messages postés 29395 Date d'inscription vendredi 5 février 2010 Statut Modérateur Dernière intervention 23 octobre 2021 9 617 > lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017
7 oct. 2017 à 11:49
Si tu tapes
service mysqld start
à la main, ça te retourne quoi ? Ça fonctionne ou même erreur ?

Tu peux préciser ta version de CentOS ?
0
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 10 > Judge_DT Messages postés 29395 Date d'inscription vendredi 5 février 2010 Statut Modérateur Dernière intervention 23 octobre 2021
7 oct. 2017 à 12:00
Centos 6.9

A la main, ça fonctionne,
service mysqld start
et
service httpd start
aussi.

APRES mon script, lorsque j'entre
service mysqld status
il me sort mysqld stoped. donc le script ne lance pas le service.

j'ai exactement le même soucis lorsque je remplace
service mysqld start
par
/etc/init.d/mysqld start



Je pense que le soucis vient du script et non de mysqld ou de httpd sachant que les deux fonctionnent parfaitement bien en commande externe.
0
lPreduSl Messages postés 56 Date d'inscription dimanche 20 mars 2016 Statut Membre Dernière intervention 2 décembre 2017 10
11 oct. 2017 à 20:44



Ci-joint l'erreur, merci de m'aider !
0