janvier
2012
Juste un petit entrepôt des mes utilitaires Linux … j’ai des petits utilitaires, des procédures de config, de paramétrage,…que je souhaite partager ici… je complèterai cet espace au fur et mesure que mon emploi du temps me le permet …
Distribution Linux : Redhat ou CentOS
=> Redémarrer la machine
reboot
# ou bien
shutdown –r
=> Arrêter de la machine
shutdown –h
=> Afficher les interfaces réseaux
ifconfig -a
=> Afficher les paramètres réseau d’une interface (par exemple eth0)
ethtool eth0
=> Afficher le contenu du fichier hosts (fichier de résolution de nom des machines)
more /etc/hosts
=> Pour changer l’adresse IP ou l’adresse MAC de la machine
1. Modifier le fichier /etc/sysconfig/network-scripts/ifcfg-eth0
2. Redémarrer le service network
/etc/init.d/network restart
=> Pour changer le nom de la machine
1. Modifier le fichier /etc/sysconfig/network
2. Modifier également le fichier /etc/hosts
3. Redémarrer de la machine
reboot
4. vérifier le nom de la machine
hostname
=> Obtenir les espaces utilisés par les répertoires systèmes
df -h
Et pour un système de fichier particulier comme tmp
df –h /tmp
=> Obtenir Nom, Nom complet et DNS d’une machine
hostname
hostname -f
hostname -d
=> Monter un cdrom
mount /dev/cdrom /mnt
=> Monter un disk (ou clé) USB
# Vérifier si la clé (ou disque) USB est bien montée :
lsusb
# Obtenir l’adresse de la clé (ou disque) USB si elle n’est pas montée
fdisk –l
# Monter la clé USB (ou disque)
mount /dev/sdxy /mnt
# Dans mon cas le resultat de fdisk -l donne sdb1 donc sdxy = sdb1
=> Configurer le redémarrage automatique du service tomcat
1. Copier/enregistrer le script ci-dessous dans le répertoire /etc/init.d
Sous le nom « tomcat » par exemple
# This is the init script for starting up the
# Jakarta Tomcat server
#
# chkconfig: 345 91 10
# description: Starts and stops the Tomcat daemon.
#
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
tomcat=/opt/apache-tomcat-5.5.27
startup=$tomcat/bin/startup.sh
shutdown=$tomcat/bin/shutdown.sh
export JAVA_HOME=/usr/java/jdk1.5.0_19
start(){
#echo -n $"Starting Tomcat service: "
action $"Stopping Tomcat service: " $startup
RETVAL=$?
echo
}
stop(){
action $"Stopping Tomcat service: " $shutdown
RETVAL=$?
echo
}
restart(){
stop
start
}
status(){
numproc=`ps -ef | grep catalina | grep -v "grep catalina" | wc -l`
if [ $numproc -gt 0 ]; then
echo "Tomcat is running..."
else
echo "Tomcat is stopped..."
fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# This doesn't work ;)
status tomcat
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
2. Modifier les droits de lecture et écriture du fichier précédent (tomcat)
chmod a+x tomcat
3. Ajouter tomcat aux services
chkconfig –- add tomcat
4. Configurer le run level pour que tomcat redemarre en mode auto
chkconfig --level 2345 tomcat on
=> interface simple pour activer et désactiver les services
ntsysv fournit une interface simple pour activer et désactiver les services.
ntsysv
=> Configurer les interfaces réseaux eth0,eth1,… : Speed,Duplex et Auto-negotiation
ethtool -s eth0 speed 100 duplex full autoneg off
La commande ci-dessus configure automatiquement les paramètres Speed,Duplex et Auto-negation et engendre donc une coupure réseau. Il est donc conseillé d’exécuter la commande en dehors des heures de service. Il faut noter aussi que cette configuration est perdue au redémarrage de la machine.
Alors pour éviter de perdre la configuration au redémarrage du serveur, il faut en plus de la commande précédente modifier le fichier /etc/sysconfig/network-scripts/ifcfg-eth*
Procédure
# se positionner dans le repertoire network-scripts
cd /etc/sysconfig/network-scripts
# lister les interfaces ethernet dispo sur la machine
ll ifcfg-eth*
# Ajouter à chaque fichier ifcfg-eth*( ifcfg-eth0, ifcfg-eth1,…) la ligne : ETHTOOL_OPTS="speed 100 duplex full autoneg off"
Exemple pour ifcfg-eth0
# vi ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=none
BROADCAST=xxx.xx.xxx.xxx
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=xxx.xx.xxx.xx
NETMASK=xxx.xxx.xxx.xxx
NETWORK=xxx.xx.xxx.x
ONBOOT=yes
TYPE=Ethernet
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
=> Dévérouiller un compte root
1. Se connecter à la machine avec un autre compte
2. Modifier le fichier sshd_config en positionnant le paramètre PermitRootLogin sur la valeur YES
vi /etc/ssh/sshd_config
# Et mettre le paramètre PermitRootLogin à YES
PermitRootLogin = YES
3. redémarrer le service sshd
service sshd restart
=> Recherche de fichier dans tous les répertoires
Soit à rechercher tous les fichiers « ifcfg-eth* » c’est à dire « ifcfg-eth0″, « ifcfg-eth1″,…
find /* -name "ifcfg-eth*" -print
=> Configurer date-heure : commandes date ou hwclock
# visualiser date heure
date
# visualiser date heure UTC/GMT
date --utc
# configurer l'heure (par exemple mettre l'heure actuelle à 13:42:05)
date -s "13:42:05"
# configurer la date seule sans toucher à l'heure
date -s "13:42:05 Apr 29, 2011"
# configurer le timezone
dateconfig
=> Synchroniser une machine avec un serveur de temps (NTP)
1. Modifier le fichier /etc/ntp.conf
Dans cet exemple le serveur NTP à pour IP : 172.xx.x.xxx
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
restrict default kod nomodify notrap nopeer noquery
server 172.xx.x.xxx
restrict 172.xx.x.xxx mask 255.255.255.255 nomodify notrap noquery
2.Redémarrer le service ntpd
service ntpd start
ou
/etc/init.d/ntpd start
3. Pour que le service ntpd redémarre automatiquement après un reboot de machine
chkconfig --level 345 ntpd on
4.Vérifier que la synchronisation est effective
ntpstat;echo $?
Exemple de résultat : le chiffre 0 à la fin indique que la machine est bien synchronisée
——————
synchronised to NTP server (172.xx.x.xxx) at stratum 4
time correct to within 172 ms
polling server every 1024 s
0
=> Planifié le Reboot automatique du serveur tous les dimanche à 22H30
Un lien intéressant sur le sujet
0. Se connecter au serveur en tant que root
1. Vérifier si le service crond est installé et qu’il est démarré
service crond status
Démarrer le service crond si il n’est pas dans l’état « Running » :
service crond start
Vérifier si le service crond demarre automatiquement au reboot
chkconfig --list | grep crond
résultat attendu les Level 345 doivent être à ON :
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Si les Level 345 ne sont pas à ON il faut faire :
chkconfig --level 345 crond on
2. Créer le script de reboot, nous allons appelé ce script « reboot.sh »
Vi /bin/reboot.sh
Préparons le script reboot.sh qui écrit dans le fichier de log (trace)après le reboot:
#!/bin/sh
echo "Reboot du serveur" >> /tmp/log_reboot.log
date >> /tmp/log_reboot.log
3. Modifier les droits sur le fichier reboot.sh
chmod 777 reboot.sh
4. Pour scheduler le reboot exécuter :
crontab -e
5. Ajouter les lignes suivantes puis enregister
30 22 * * 0 reboot
@reboot /bin/reboot.sh
6. Pour visualiser les tâches planifiées
crontab -l
=> Créer un user dans le groupe root
1. créer le compte
useradd -m -g 0 admin
2. initialiser le mot de passe du compte admin
passwd admin
=> Installer ou mettre à jour un RPM
rpm -Uhv * myfile.rmp
=> Installer un RPM
rpm -ihv myfile.rmp
=> Désinstaller un RPM
rpm -e myfile
* Noter que la désinstallation du RPM il ne faut pas indiquer l’extension(.rpm) du paquet RPM
=> Configurer un serveur DNS sous CentOS 5 Procédure
=> Lister les caractéristiques d’un serveur Linux
*****************************************************************************************************
** LISTER LES COMPOSANTS D'UNE MACHINE SOUS LINUX
*****************************************************************************************************
*****************************************************************************************************
** FILE SYSTEM
*****************************************************************************************************
# df -h
*****************************************************************************************************
** CPU
*****************************************************************************************************
# cat /proc/cpuinfo
ou
# dmesg | grep CPU
*****************************************************************************************************
** MEMOIRE
*****************************************************************************************************
# cat /proc/meminfo
*****************************************************************************************************
** DONNEES DU BIOS
*****************************************************************************************************
Récupérer les informations sur le matériel en collectant les informations depuis le BIOS.
# dmidecode -t <TYPE>
<TYPE> est un nombre extrait de la liste suivante :
Type Information
----------------------------------------
0 BIOS
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply
****************************************************
** TYPE DE SERVEUR
****************************************************
# dmidecode -t 1
# dmidecode 2.7
SMBIOS 2.5 present.
Handle 0x000A, DMI type 1, 27 bytes.
System Information
Manufacturer: IBM
Product Name: System x3650 M2 -[7947AC1]-
Version: 00
Serial Number: KQRKBKK
UUID: 28286A77-C724-3509-8C1F-7790C6E0FC2C
Wake-up Type: Power Switch
SKU Number: XxXxXxX
Family: System x
****************************************************
** TYPE DE CARTE MERE
****************************************************
# dmidecode -t 2
# dmidecode 2.7
SMBIOS 2.5 present.
Handle 0x000B, DMI type 2, 16 bytes.
Base Board Information
Manufacturer: IBM
Product Name: 49Y6498
Version: (none)
Serial Number: 9A804T
Asset Tag: (none)
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Rear Bottom
Chassis Handle: 0x000C
Type: Motherboard
Contained Object Handles: 0
****************************************************
** TYPE DE CHASSIS
****************************************************
# dmidecode -t 3
# dmidecode 2.7
SMBIOS 2.5 present.
Handle 0x000C, DMI type 3, 17 bytes.
Chassis Information
Manufacturer: IBM
Type: Rack Mount Chassis
Lock: Not Present
Version: none
Serial Number: none
Asset Tag: none
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Other
Security Status: Other
OEM Information: 0x00000000
—
A suivre ….
———————-
Etienne ZINZINDOHOUE
je ne critique pas l’intérêt de ton post, loin de là
Simplement, plus les années passent plus linux évolue (et se rapproche de Windows/Mac quoi qu’on en dise) et je trouvais étonnant que le côté user-friendly soit laissé de côté sur certaines distribs. Je crois que j’avais devoir m’installer de nouveau la dernière ubuntu pour voir ce que ca vaut maintenant
Question :
je ne comprends toujours pas pourquoi, selon ton postes, il faille toujours faire des lignes de commande pour monter une clé usb ou un lecteur cdrom.
Réponse : C’est vrai que sur les versions actuelles de Redhat les clés ou disques USB sont automatiquement montés. Mais je reste toujours prudent car les environnements/materiels/… ne sont pas toujours ce qu’on aurait souhaité … je reste donc toujours prudent….
Question :
pareil, t’as un script pour synchroniser avec un serveur NTP.c’est sérieux? je veux dire, sans ça, linux n’est pas capable de le faire tout seul?
ou alors c’est juste Red Hat qui est comme ca?
Réponse :
Pour synchroniser une machine avec un serveur NTP il faut juste modifier le fichier /etc/ntp.conf .
Il faut juste ajouter/modifier ces deux lignes au fichier /etc/ntp.conf :
server 172.xx.x.xxx
restrict 172.xx.x.xxx mask 255.255.255.255 nomodify notrap noquery
Par défaut les machines redhat sont synchronisées sur des serveurs NTP public.
Certaines applications de gestions d’activités (temps réel) dans des centres d’appels exigent la mise en place de serveur NTP (non public). Et là il faut savoir quel fichier modifié si on n’a pas d’interface graphique Linux.
Et pour vérifier si la synchro est OK il faut exécuter la commande :
ntpstat;echo $?
PS : L’idée de ce petit billet c’est d’essayer de regrouper mes petites procédures qui sont à gauche à droite selon les projets (ou l’environnements) et qui me sont d’une grande utilité
Donc j’essayerai de le compléter au fur et à mesure
Merci pour tes commentaires
A+
je crois que la dernière fois que j’ai vraiment eu un OS linux en boot principal de ma machine, c’était Red Hat 6 en 2001. je ne comprends toujours pas pourquoi, selon ton postes, il faille toujours faire des lignes de commande pour monter une clé usb ou un lecteur cdrom. a l’époque, si je dis pas de connerie, il fallait faire un daemon qui faisait le mount à chaque demarrage.
pareil, t’as un script pour synchroniser avec un serveur NTP. c’est sérieux? je veux dire, sans ça, linux n’est pas capable de le faire tout seul?
ou alors c’est juste Red Hat qui est comme ca?
j’ai fait mumuz avec ubuntu, et c’est quand meme bien plus user-friendly. je suis un geek mais si chaque action demande une ligne de commande sérieusement, quel est l’intérêt d’un linux (et qu’on me sorte pas la sécurité ou le controle du système parce que j’ai la maitrise de Windows 7 sans recompiler mon kernel chaque lundi matin :D)
non ce n’est pas un troll, j’ai passé des années sous linux, créé ma propre distrib mais c’était en tant qu’étudiant curieux. maintenant j’ai RÉELLEMENT du mal à voir la plus-value de certaines distribs (exit le fait que ca soit gratuit parce que bon un Windows 7, ca vaut 50€ donc faut pas abuser non plus). je lance le débat