Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Probleme script bash
Envoyé par: samy75896

Bonjour,

je suis nouveau dans le monde linux.

Dans le monde Windobe, on peut faire un batch avec des commandes pour exécuter plusieurs tâches.

Comment peut-on faire l'equivalent sous linux ?

J'ai essayé avec emacs de faire le script suivant : optimisation.sh

#!/bin/bash
echo " Optimise le nombre maximum de fichiers et d'inodes dans le noyau"
echo 32000 > /proc/sys/fs/file-max
echo 65000 > /proc/sys/fs/inode-max
echo "Optimise les connections TCP/IP"
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo "Optimise le serveur Samba"
socket options = TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
echo "Ajuste le buffercahce TCP/IP"
echo 262144 > /proc/sys/net/core/rmem_max
echo 262144 > /proc/sys/net/core/wmem_max
echo "Augmente le stack size"
ulimit -s 32768
echo "Retire la limite de processus par utilisateur"
ulimit -u unlimited

Mais quand je veux executer ce dernier ( en root) il me retourne :
Bad interpeter

Merci de votre aide

sam

Poste le Thursday 23 February 2006 20:48:40
Répondre     Citer    
Re: Probleme script bash

Citation
samy75896
Mais quand je veux executer ce script ( en root)
il me retourne : Bad interpeter

Très bonne initiative que de faire un script. Je vois 3 explications possibles:

1. la plus probable: bash est installé comme /bin/sh il faut donc commencer le script par #! /bin/sh qui est d'ailleurs le chemin normalisé Posix si j'ai bonne mémoire.

2. rendre le script executable par chmod a+rx optimisation.sh et l'executer d'abord par ./optimisation.sh voire /le/chemin/complet/optimisation.sh (où on remplace /le/chemin/complet par ce qu'il faut).

3. (peu probable, mais ça m'est arrivé une fois) une obscure histoire de librarie dynamique. Que donne la commande ldd /bin/bash?

En esperant avoir aidé.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 23 February 2006 21:37:44
Répondre     Citer    
Re: Probleme script bash

J'ai oublié de dire que les commandes ulimit ne s'appliquent qu'au shell executant le script et à ses fils, et donc ne servent pas à grand chose.

Poste le Thursday 23 February 2006 21:39:13
Répondre     Citer    
Re: Probleme script bash
Envoyé par: diancech

Et quasimment toutes ces options (peut être même toutes) peuvent être fixées dans le /etc/sysctl.conf, comme cela pas besoin de s'embêter à créer un script et à l'executer à chaque démarrage.

;-)

--------------------------------------------------------------------------------------------------------------------------------------------------
Exige beaucoup de toi-même et attends peu des autres. Ainsi beaucoup d'ennuis te seront épargnés. Confucius

Poste le Friday 24 February 2006 00:00:21
Répondre     Citer    
Re: Probleme script bash
Envoyé par: Sve@r

Citation
samy75896
Bonjour,

je suis nouveau dans le monde linux.

Dans le monde Windobe, on peut faire un batch avec
des commandes pour exécuter plusieurs tâches.

Comment peut-on faire l'equivalent sous linux ?

J'ai essayé avec emacs de faire le script suivant
: optimisation.sh

#!/bin/bash
echo " Optimise le nombre maximum de fichiers et
d'inodes dans le noyau"
echo 32000 > /proc/sys/fs/file-max
echo 65000 > /proc/sys/fs/inode-max
echo "Optimise les connections TCP/IP"
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 >
/proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo "Optimise le serveur Samba"
socket options = TCP_NODELAY SO_SNDBUF=4096
SO_RCVBUF=4096
echo "Ajuste le buffercahce TCP/IP"
echo 262144 > /proc/sys/net/core/rmem_max
echo 262144 > /proc/sys/net/core/wmem_max
echo "Augmente le stack size"
ulimit -s 32768
echo "Retire la limite de processus par
utilisateur"
ulimit -u unlimited

Mais quand je veux executer ce dernier ( en root)
il me retourne :
Bad interpeter

Merci de votre aide

sam

Il faut faire attention que la simple redirection ">" écrase le fichier pour y mettre ton "echo". Peut-être que c'est ce que tu veux, j'en sais rien mais il faut le savoir. Si tu veux pas écraser, il faut utiliser la double redirection ">>".

Sinon, le "bad interpreter" c'est parce qu'il ne trouve pas "/bin/bash" (ce qui est un peu étonnant sous Linux mais peut-être qu'il est pas installé). Essaye donc "/bin/sh" comme cela a été dit.
Mais j'ai déjà eu ce problème sur un script importé depuis le monde windows (une disquette en FAT par exemple). Le script contenait des caractères invisibles dont Windows se sert mais que le shell n'apprécie pas. Tu peux vérifier ce cas en lançant "vi -b optimisation.sh". Si c'est ça, tu verras en bas à gauche "Dos text file". Là, il faut utiliser le copier/coller de ton environnement graphique (kde/gnome)pour créer un script neuf et y importer juste le texte de ton ancien script. Puis tu sauvegardes le nouveau script et tu le renommes. Et enfin tu n'oublies pas d'y mettre le droit "x".


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Saturday 25 February 2006 16:37:16
Répondre     Citer    
Re: Probleme script bash
Envoyé par: samy

j'ai essayé avec /bin/sh et ca marche bien en recopiant le script dans un nouveau fichier.

je vais donc modifier dans le fichier /etc/sysctl.conf, comme le conseille diancech, pour que les changements soient permanents.

Un grand merci à tous

samy

Poste le Sunday 26 February 2006 14:16:57
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Probleme script bash
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons