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
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
A voir également:
- Script non fonctionnel : command not found
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Organigramme fonctionnel word - Guide
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 665
Modifié le 6 oct. 2017 à 04:03
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 :
- 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 :
Le script :
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.
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.
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
11 oct. 2017 à 20:44
6 oct. 2017 à 07:56
Rien à redire. Clair et efficace. Merci !
6 oct. 2017 à 12:09
7 oct. 2017 à 10:28
J'en viens à un autre problème.
Sauriez-vous m'aider à résoudre ceci :
Que j'obtiens suite à l'éxecution de ce script :
Ci joint une photo :
https://img-19.ccm2.net/lS8HPT1WxvS3Bp7RvgB9b_tGpHw=/b29573434c26490c8edb2b8fda65127d/tmp/centos_script_error.png
7 oct. 2017 à 11:49
Tu peux préciser ta version de CentOS ?
7 oct. 2017 à 12:00
A la main, ça fonctionne, et aussi.
APRES mon script, lorsque j'entre il me sort mysqld stoped. donc le script ne lance pas le service.
j'ai exactement le même soucis lorsque je remplace par
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.