Si je veux voir tous les fichiers journaux pertinents de mon serveur apache2 à la fois, j'utilise
tail -f /var/kunden/logs/*log /var/kunden/logs/*log /var/log/apache2/*log |grep -v robots|grep -v favicon
Mais comme ce sont trop de fichiers à ce jour, je voudrais augmenter cette limite.
Comment puis-je l'augmenter pour une session ssh? Et comment pourrais-je l'augmenter globalement à l'échelle du système?
Je peux voir que la limite de fichiers ouverts est de 1024 sur ma machine:
ulimit -n
1024
-F
place de-f
sorte que les journaux soient rouverts lorsqu'ils sont tournés.Réponses:
Il est important de savoir qu'il existe deux types de limites:
Solution pour une seule session
Dans la coque, définissez la limite souple:
Cet exemple augmentera la limite réelle à 2048 mais la commande réussira uniquement si la limite stricte (vérifier:)
ulimit -Hn
est identique ou supérieure. Si vous avez besoin de valeurs plus élevées, augmentez la limite stricte en utilisant l'une des méthodes ci-dessous. Les limites sont définies par processus et elles sont héritées par les processus nouvellement générés, donc tout ce que vous exécutez après cette commande dans le même shell aura les nouvelles limites.Modification de la limite stricte en une seule session
Ce n'est pas facile car seul root peut modifier une limite stricte et après avoir basculé sur root, vous devez revenir à l'utilisateur d'origine. Voici la solution avec
sudo
:Solution à l'échelle du système
Dans Debian et de nombreux autres systèmes utilisant,
pam_limits
vous pouvez définir les limites à l'échelle du système dans/etc/security/limits.conf
et dans les fichiers dans/etc/security/limits.d
. Le fichier conf contient une description. Exemples de lignes:Cela définira la limite fixe et la limite souple par défaut pour les utilisateurs du groupe
webadmins
après la connexion.Autres limites
La valeur de limite stricte est limitée par la limite globale de la valeur des descripteurs de fichiers ouverts,
/proc/sys/fs/file-max
qui est assez élevée par défaut dans les distributions Linux modernes. Cette valeur est limitée par laNR_OPEN
valeur utilisée lors de la compilation du noyau.N'y a-t-il pas une meilleure solution?
Vous pourriez peut-être vérifier si tous les
*log
fichiers que vous alimenteztail -f
sont des fichiers vraiment actifs qui doivent être surveillés. Il est possible que certains d'entre eux soient déjà fermés pour la journalisation et vous pouvez simplement ouvrir un plus petit nombre de fichiers.la source
su
rooter etsu
revenir à l'utilisateur:su -c "ulimit -Hn 6000 ; su $USER"
ulimit -Hn 6000; ulimit -Sn 6000
tant que root/etc/limits.*
. Ces limites sont appliquées à chaquepam_limits.so
appel du module PAM . Normalement, c'est au début d'une session. Par exemple , dans Ubuntu 14.04 , il est dans ces outils / commandes:cron
,login
(texte connexion de la console),lightdm
(la connexion GUI),su
. Vous pouvez définir où estpam_limits
utilisé/etc/pam.*
. Voir par exemple: faqs.org/docs/securing/chap5sec44.htmlJ'ai eu l'avertissement PHP dans mon error.log Apache:
J'ai donc découvert qu'apache définit cette valeur individuellement lors du démarrage (sur mon Ubuntu 14.04). Il est configuré dans
/etc/apache2/envvars
. Ça dit:j'ai donc dû ajuster la troisième ligne.
la source