OVH Community, your new community space.

[RTM] Problème disque sur votre serveur


buddy
03/02/2014, 21h23
bof ... entre çà et les rm -rf /dossier/* ... on est pas à l'abri d'avoir perdu des fichiers importants ...

nowwhat
03/02/2014, 09h10
Donc: goto rescue mode puis inspection des logs pour voir ce qu'il a fait, ce serveur, pendant ce temps.

Que exim plante, ok - mais là, c'est clair qu'il y a d'autres soucis.
Le hôte indésirable a du trafiquer le système, ce plus qu'évident.

buddy
03/02/2014, 08h43
oui.. d'ailleurs je pense que 8 ou 9h plus tard, çà n'est plus un fsck disque là ... il y a un réel soucis ...

starouille
03/02/2014, 01h24
faut dire, sans /tmp, /var/log etc.. possible que certains daemon réagisse mal.. réinstaller le serveur (si pas de backups) serait plus sage.

nowwhat
03/02/2014, 00h14
Pourquoi vider comme ça:
Citation Envoyé par ben888
cd /var/spool
/sbin/service exim stop

mv exim exim.old
mkdir -p exim/input
mkdir -p exim/msglog
mkdir -p exim/db
chown -R mail:mail exim
/sbin/service exim restart
Quand la bonne manière existe ?
Citation Envoyé par nowwhat
.....
Google te donne ceci après "vider queue exim" http://howto.landure.fr/gnu-linux/tr...es-pour-exim-4
att quand même.
Il doit y avoir un énorme fsck qui fait le ménage .... et ça prend du temps avant que le serveur démarrage vraiment.
Un peu comme un scandisk qui démarre dès le démarrage de Windows ....

buddy
02/02/2014, 23h02
OK.

rien d'autre ne marche .

Te reste plus que 2 solutions.

Soit le mode rescue et essayé de voir dans les logs (si tu en as) ce qui ne va plus.
Soit réinstaller. (solution la plus rapide à mon avis si tu as de bon backups)

ben888
02/02/2014, 22h59
Citation Envoyé par buddy
çà veut dire quoi le ssh n'est pas fonctionnel ?
timeout ? ne reconnait plus le mot de passe ? quel est le message exact ?

Tu as flingué combien de répertoires tout à l'heure ??

Sinon si tu ne veux pas perdre plus de temps tu réinstalles puis voilou .. ( çà aura l'avantage d'avoir un serveur sain et pas forcément des backdoors)
le message est:
the host is unreachable
the host maybe down

buddy
02/02/2014, 22h48
çà veut dire quoi le ssh n'est pas fonctionnel ?
timeout ? ne reconnait plus le mot de passe ? quel est le message exact ?

Tu as flingué combien de répertoires tout à l'heure ??

Sinon si tu ne veux pas perdre plus de temps tu réinstalles puis voilou .. ( çà aura l'avantage d'avoir un serveur sain et pas forcément des backdoors)

ben888
02/02/2014, 22h46
le serveur à redémarrer sans echec, mais ks388899.kimsufi.com n'est pas fonctionnelle
le ping fonctionne, mais pas le ssh

starouille
02/02/2014, 22h26
Citation Envoyé par nowwhat
Il est top ce lui la:

Il cherche les inodes occupé par répertoire ...

+1 j'aurais utilisé celui là aussi

j'ai eu peur quand j'ai lu

rm -Rf /var/tmp/portage

rm -Rf /var/tmp/
rm -Rf /tmp/
rm -Rf /var/tmp/portage
rm -Rf /var/log


Il ne faut JAMAIS faire de rm -Rf à l'aveugle comme ça..

en plus tu vire tous les sous repertoires, et sans compter les fichiers en cours d'écriture qui ne seront pas supprimé avant le relance du process qui écrit dedans /!\... et ça va être marrant si le soft va plante en te disant "cannot open /var/log/soft/log_du_soft.log" par exemple et je parles pas de /tmp et /var/tmp..

ben888
02/02/2014, 22h20
Merci à vous tous, je redémarre le serveur, parce-que les sites ne sont pas accessible

buddy
02/02/2014, 22h17
Salut,

si tu penses que le problème est résolu, tu peux soit redémarrer les services 1 par 1
soit reboot software le serveur qui devrait relancer tous les services lors du reboot ( connexion SSH qui une fois identifié tu tapes reboot)

Ensuite tu vérifies ta queue mail genre demain matin et si çà va bien, tu débloque via l'api OVH ton ip pour spam.

ben888
02/02/2014, 22h13
site hacker trouver est je l'ai suspendu
cd /var/spool
/sbin/service exim stop

mv exim exim.old
mkdir -p exim/input
mkdir -p exim/msglog
mkdir -p exim/db
chown -R mail:mail exim
/sbin/service exim restart
supprimer tout:
rm -rf exim.old

nowwhat
02/02/2014, 20h31
Citation Envoyé par ben888
Code HTML:
spool]# cd exim
[root@ks388899 exim]# du -ks * --exclude=sys --exclude=proc | sort -n -r
1602708 input
793328  msglog
dois-je tout supprimer ?
T'as donc exim qui est ton serveur mail.
Au lieu de supprimer tout bêtement la continue de ce répertoires, regarde dans le doc d'exim comment supprimer les mails en dans son queue - et comme purger le répertoire "/msglog" d'une façon propre.

Arrête exim avant de débuter.

Google te donne ceci après "vider queue exim" http://howto.landure.fr/gnu-linux/tr...es-pour-exim-4

Mais bon, une fois le queue vidé il va se remplir rapidement, car le hackeur retrouvera de la place à nouveau.

Il faut donc surveiller le log des mails, savoir d'ou vienne toutes ces mails, et arrêter l’hémorragie ....
Dès que tout est à nouveau sur contrôle, débloque le filtrage "porte 25" - et seulement si t'as TOUT sous contrôle.

ben888
02/02/2014, 20h23
Citation Envoyé par nowwhat
Nouveau commandes:
cd /
du -ks * --exclude=sys --exclude=proc | sort -n -r

Ca va te donner une liste avec les répertoire et leur taille.

14705324 var
4378688 usr
787040 opt
723052 root
38792 boot
28024 etc
16288 lib
13544 sbin
6616 bin
268 run
40 tmp
40 home
16 lost+found
12 mnt
8 media
4 selinux
0 dev

Donc /var est mon répertoire le plus grand.
Je entre dans cette répertoire
cd /var
puis je répète la commande:
du -ks * --exclude=sys --exclude=proc | sort -n -r
A nouveau, ça me donne le répertoire le plus grand en haut,

etc.

Finalement, tu trouve ton répertoire le plus grand.
Il y est quoi dans ce répertoire ?
Merci à tous pour vos réponses ,
j'ai :

Code HTML:
spool]# cd exim
[root@ks388899 exim]# du -ks * --exclude=sys --exclude=proc | sort -n -r
1602708 input
793328  msglog
dois-je tout supprimer ?

nowwhat
02/02/2014, 20h10
Il est top ce lui la:
Citation Envoyé par buddy
for i in /*; do echo -n $i " " ; find $i |wc -l; done | sort -n -k2
Il cherche les inodes occupé par répertoire ...

nowwhat
02/02/2014, 20h08
Citation Envoyé par ben888
oui c'est vrai , ovh a bloqué le ports 25
Aaaaaah.
Et tu dit ça que maintenant ........
Ne cherche plus.
Ne fait plus rien, tu embête le nouveau colocataire de ton serveur qui l'utilise pour faire son boulot.
Suivant ton serveur mail, t'as un commande qui liste le nombre des mails dans le queue de traitement.
Pour un serveur mail postfix, c'est
mailq
Ce queue, il ne bouge plus car plus rien sort de ton serveur. Il ne fat que agrandir (plus maintenant, tout est plein).
Ou, le "spammeur" qui utilise ton serveur n'arrête pas d’injecter des nouveau mails ....

Ré-installe ton serveur.
Et évite de ce faire hacker son serveur.
T'aime pas ça.
OVH aime pas ça.
Ceux qui recoivent tes spams n'aiment pas ça.
Donc: tu va ouvrir une chapitre: comment blinder mon serveur (éviter des programmes inconnu - pas des plugins/modules/etc dans tes sites basés sur PHP, etc etc)

buddy
02/02/2014, 20h08
Beh alors tu as fait quoi après le hack de ton serveur ??

1/ vider la queue du serveur mail
2/ chercher la fialle / mettre à jours TOUS ces sites internets ...

oui ? non ? autre chose ?


sinon pour lister le nombre de fichiers par répertoire ( c'est 1 inode / fichier non donc nombre de fichiers == nb d'inodes non ? )
Code:
for i in /*; do echo -n $i " " ; find $i |wc -l; done | sort -n -k2
source : http://www.icaunux.org/forum/viewtopic.php?id=713

ben888
02/02/2014, 20h02
Citation Envoyé par buddy
non mais le soucis c'est que tu as 650 000 fichiers sur ta partition / ce n'est pas en supprimant 10 fichiers que çà va s'arranger ...

Tu n'aurais pas eu ton serveur hacké et plein de mails dans la liste des mails en attente à envoyer ??

tu as quoi comme serveur mail ?


oui c'est vrai , ovh a bloqué le ports 25

nowwhat
02/02/2014, 20h00
Nouveau commandes:
cd /
du -ks * --exclude=sys --exclude=proc | sort -n -r

Ca va te donner une liste avec les répertoire et leur taille.

14705324 var
4378688 usr
787040 opt
723052 root
38792 boot
28024 etc
16288 lib
13544 sbin
6616 bin
268 run
40 tmp
40 home
16 lost+found
12 mnt
8 media
4 selinux
0 dev

Donc /var est mon répertoire le plus grand.
Je entre dans cette répertoire
cd /var
puis je répète la commande:
du -ks * --exclude=sys --exclude=proc | sort -n -r
A nouveau, ça me donne le répertoire le plus grand en haut,

etc.

Finalement, tu trouve ton répertoire le plus grand.
Il y est quoi dans ce répertoire ?

buddy
02/02/2014, 19h54
Citation Envoyé par ben888
les fichiers date de juin 2013
dois-je les effacer ?
non mais le soucis c'est que tu as 650 000 fichiers sur ta partition / ce n'est pas en supprimant 10 fichiers que çà va s'arranger ...

Tu n'aurais pas eu ton serveur hacké et plein de mails dans la liste des mails en attente à envoyer ??

tu as quoi comme serveur mail ?

ben888
02/02/2014, 19h50
les fichiers date de juin 2013
dois-je les effacer ?

nowwhat
02/02/2014, 19h45
Hummm.
Pas c*n, ce
locate sess_

Chez moi, je trouve bien :
.....
/usr/share/man/fr/man3/SSL_CTX_sess_set_cache_size.3SSL.gz
/usr/share/man/man1/sess_id.1ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept_good.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_cache_full.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_cb_hits.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect_good.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_cache_size.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_get_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_new_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_hits.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_misses.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_number.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_cache_size.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_get_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_new_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_timeouts.3ssl.gz
/var/lib/php5/sess_2bpnhiqpbp28teljlrr1gcupt6
/var/lib/php5/sess_2sd5ut9b0fklbnq3441gdgesk6
/var/lib/php5/sess_4lckf7nla3aj7tj74jmuv4mth5
/var/lib/php5/sess_ao2hrq2c1ndm5u3nsotco34em5
/var/lib/php5/sess_dum25rcl58ibl4hhvbu1ouhhr7
/var/lib/php5/sess_emajonrfpcn48j7de8g4i9qu94
/var/lib/php5/sess_fjigh9h9jqrime6imtr0o2ra15
/var/lib/php5/sess_hfsititpq8e0kr2ipsg8hrve63
/var/lib/php5/sess_ihenp2de6cj5kegfkg7cueb434
/var/lib/php5/sess_l2up5oojd8d2tvkl5qh3upbi41


Donc, c'est le répertoire
/var/lib/php5/
qui nous intéresse.

Pourquoi toutes ces question concernant ces fichiers session ?
Car, s'il ne sont pas effacé au bout de x temps (disons 30 minutes, ça ce fait avec un script cron sur les plupart des serveurs) ce répertoire contient des dizaines des milliers de fichiers session_.... et ça bouffe toute les inodes.
C'est un erreur très fréquent.

édit: Ok, vu la réponse plus haut.
Le soucis concerne pas ces fichiers alors.

ben888
02/02/2014, 19h44
Citation Envoyé par buddy
et si tu tapes en ssh

Code:
locate sess_

quelle est la réponse ??
sa donne :

/usr/share/man/man1/sess_id.1ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept_good.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_cache_full.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_cb_hits.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect_good.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_cache_size.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_get_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_new_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_hits.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_misses.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_number.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_cache_size.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_get_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_new_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3ssl.gz
/usr/share/man/man3/SSL_CTX_sess_timeouts.3ssl.gz

buddy
02/02/2014, 19h36
et si tu tapes en ssh

Code:
locate sess_
quelle est la réponse ??

ben888
02/02/2014, 19h35
Citation Envoyé par nowwhat
Exécute alors
php -r 'echo ini_get("session.save_path")."\n";'
comme proposé.
résultat :

Code:
php -r 'echo ini_get("session.save_path")."\n";'
Unable to create lock file:  No such file or directory
Failed to start up concurrent users module!

nowwhat
02/02/2014, 19h05
Exécute alors
php -r 'echo ini_get("session.save_path")."\n";'
comme proposé.

ben888
02/02/2014, 18h27
Citation Envoyé par nowwhat
Place ce fichier dans le 'documentroot':
Code PHP:
 echo ini_get('session.save_path');
?>
Nomme le fichier par exemple info.php

Puis, exécute le avec ton navigateur:
http://www.ton-domaine.tld/info.php

La sortie de ce script va te donner un chemin, chez moi, c'est:
/var/lib/php5

édit: plus simple:
Exécute ceci;
php -r 'echo ini_get("session.save_path")."\n";'
/var/lib/php5

Va voir a cet endroit.
Tu trouveras des fichiers nommé comme ça:
sess_0sh373npva96sqi0e01n6dvti4

Il y a combien des fichiers ?
Le plus vieux date de quand ????

aucun site ne s'affiche, même par serveur/~user

buddy
02/02/2014, 17h55
Si tu n'arrives pas à lancer apache

Code:
locate sess_

nowwhat
02/02/2014, 17h42
Place ce fichier dans le 'documentroot':
Code PHP:
 echo ini_get('session.save_path');
?>
Nomme le fichier par exemple info.php

Puis, exécute le avec ton navigateur:
http://www.ton-domaine.tld/info.php

La sortie de ce script va te donner un chemin, chez moi, c'est:
/var/lib/php5

édit: plus simple:
Exécute ceci;
php -r 'echo ini_get("session.save_path")."\n";'
/var/lib/php5

Va voir a cet endroit.
Tu trouveras des fichiers nommé comme ça:
sess_0sh373npva96sqi0e01n6dvti4

Il y a combien des fichiers ?
Le plus vieux date de quand ????

ben888
02/02/2014, 15h47
Citation Envoyé par buddy
toujours pareil quoi ??
df -i çà donne quoi ??
df -i donnne :

Code HTML:
 df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1             655360  655233     127  100% /
/dev/sda2            121413632  596992 120816640    1% /home
/dev/shm             2045943       1 2045942    1% /dev/shm
rien n'a changer , sda1 est toujours plein a 100%

buddy
02/02/2014, 14h57
Citation Envoyé par 888ben
les sites sont dans /home
oui il y a des images.
j'ai tout vider :


toujours pareil
toujours pareil quoi ??
df -i çà donne quoi ??

buddy
02/02/2014, 14h56
Bonjour,

pour trouver un fichier

Code:
locate my.cnf
par exemple ..

et
Code:
updatedb
si l'on a suppr/créer dans la journée des fichiers.

ben888
02/02/2014, 14h13
Citation Envoyé par BBR
sur Debian :
# log_bin = /var/log/mysql/mysql-bin.log
# expire_logs_days = 10
Désactiver le log binaire en commentant ces deux lignes grâce à # (le log binaire n'est utile que dans le cas de réplications avec serveurs maître-esclave)
ceci de toutes façons ne peut pas faire de mal même si ce n'est pas le problème actuel

je suis sous CENTOS6

BBR
02/02/2014, 14h03
sur Debian :
# log_bin = /var/log/mysql/mysql-bin.log
# expire_logs_days = 10
Désactiver le log binaire en commentant ces deux lignes grâce à # (le log binaire n'est utile que dans le cas de réplications avec serveurs maître-esclave)
ceci de toutes façons ne peut pas faire de mal même si ce n'est pas le problème actuel

ben888
02/02/2014, 14h03
Citation Envoyé par BBR
chez moi le fichier est ici
/etc/mysql/my.cnf
et surtout comporte bien plus de lignes que ce que tu mets (dans ce fichier ils ont la manie de sauter des tas de lignes pour séparer)
j'ai utiliser un cat j'ai que 3 ligne

et
cat /etc/mysql/my.cnf donne
cat: /etc/mysql/my.cnf: No such file or directory

BBR
02/02/2014, 13h58
chez moi le fichier est ici
/etc/mysql/my.cnf
et surtout comporte bien plus de lignes que ce que tu mets (dans ce fichier ils ont la manie de sauter des tas de lignes pour séparer)

888ben
02/02/2014, 13h50
un vi /etc/my.cnf donne

[mysqld]
local-infile=0
bind-address=127.0.0.1
~

888ben
02/02/2014, 13h39
les sites sont dans /home
oui il y a des images.
j'ai tout vider :
rm -Rf /var/tmp/portage

rm -Rf /var/tmp/
rm -Rf /tmp/
rm -Rf /var/tmp/portage
rm -Rf /var/log
toujours pareil

BBR
02/02/2014, 13h34
regarde si par hasard tu n'aurais pas les logs binaire de mysql d'activés et qui rempliraient ta partition /
si ce'st le cas soit tu désactives si t'en as pas besoin soit tu fais un lien symbolique vers la partion home

buddy
02/02/2014, 13h28
la commande pour déplacer est mv.

mais il faudrait voir où est-ce que tu as plein de petits fichier qui prennent de la place ..

Par exemple, tes sites web, ils sont dans quel dossier ? tu as plein de petites images / fichiers ?

Tes fichiers logs dans /var/log tu en as beaucoup ?
tu peux aussi utiliser log_rotate ..

888ben
02/02/2014, 13h22
Bonjour,
un df -hT donne :


Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext3 10G 7.0G 2.5G 74% /
/dev/sda2 ext3 1.8T 504G 1.3T 29% /home
/dev/shm tmpfs 7.9G 0 7.9G 0% /dev/shm
comment faire pour le déplacer ?

buddy
02/02/2014, 13h16
Bonjour,

tu as trop de fichiers sur ton disque /sda1 ... tous les inodes sont pris.

Tu ne peux pas déplacer des fichiers de sda1 à sda 2 ?

puis vérifies avec
df -i
que ut n'es plus à 100 %

puis une fois çà fait relancer tous les services ( ou reboot soft )

buddy
02/02/2014, 13h14
Bonjour,

tu as trop de fichiers sur ton disque /sda1 ... tous les inodes sont pris.

Tu ne peux pas déplacer des fichiers de sda1 à sda 2 ?

puis une fois çà fait relancer tous les services ( ou reboot soft )

888ben
02/02/2014, 13h12
Bonjour,
j'ai reçu ce message d'erreur:

[RTM] Problème disque sur votre serveur ks388899.kimsufi.com
Code HTML:
Notre système RTM vient de detecter un problème sur un disque dur du
serveur ks388899.kimsufi.com. (176.31.100.5) le 2014-02-02 11:12:32.

Détails:


Alert type: disk-inodes
Detection date: 2014-02-02 11:12:32
Disk: sda1
Details: Inode usage:
sda2                :01%
shm                 :01%
sda1                :100%
j'ai vidé les fichier /tmp, mais le problème reste toujours le même, quand j'ai redémarrer mon serveur, les sites ne sont plus accessible,
le ssh fonctionne bien

Code:
# fdisk -l
donne
Code HTML:
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760+  83  Linux
/dev/sda2            1306      243136  1942498304   83  Linux
/dev/sda3          243136      243201      525920   82  Linux swap / Solaris
merci pour votre aide