Jika saya ingin melihat semua file log yang relevan dari server apache2 saya sekaligus, saya menggunakan
tail -f /var/kunden/logs/*log /var/kunden/logs/*log /var/log/apache2/*log |grep -v robots|grep -v favicon
Tetapi karena sudah terlalu banyak file sekarang, saya ingin menambahkan batasan itu.
Bagaimana saya bisa meningkatkannya untuk satu sesi ssh? Dan Bagaimana saya bisa meningkatkannya ke seluruh sistem secara global?
Saya dapat melihat batas file terbuka adalah 1024 di komputer saya:
ulimit -n
1024
-F
sebagai gantinya-f
agar log dibuka kembali saat diputar.Jawaban:
Penting untuk mengetahui bahwa ada dua jenis batasan:
Solusi untuk satu sesi
Dalam shell mengatur batas lunak:
Contoh ini akan menaikkan batas aktual menjadi 2048 tetapi perintah hanya akan berhasil jika batas keras (centang:)
ulimit -Hn
sama atau lebih tinggi. Jika Anda membutuhkan nilai yang lebih tinggi, naikkan batas hard menggunakan salah satu metode di bawah ini. Batas ditetapkan per proses dan diwarisi oleh proses yang baru lahir, jadi apa pun yang Anda jalankan setelah perintah ini di shell yang sama akan memiliki batas baru.Mengubah batas keras dalam satu sesi
Ini tidak mudah karena hanya root yang dapat mengubah batas keras dan setelah beralih ke root, Anda harus beralih kembali ke pengguna asli. Inilah solusinya dengan
sudo
:Solusi seluruh sistem
Di Debian dan banyak sistem lain yang menggunakan
pam_limits
Anda dapat mengatur batas seluruh sistem di dalam/etc/security/limits.conf
dan di dalam file/etc/security/limits.d
. File conf berisi deskripsi. Baris contoh:Ini akan menetapkan batas keras dan batas lunak default untuk pengguna dalam grup
webadmins
setelah login.Batas lainnya
Nilai batas keras dibatasi oleh batas global nilai deskriptor file terbuka
/proc/sys/fs/file-max
yang secara default cukup tinggi di distribusi Linux modern. Nilai ini dibatasi olehNR_OPEN
nilai yang digunakan selama kompilasi kernel.Apakah tidak ada solusi yang lebih baik?
Mungkin Anda dapat memeriksa apakah semua
*log
file yang Anda berikantail -f
adalah file yang benar-benar aktif yang perlu dipantau. Ada kemungkinan bahwa beberapa dari mereka sudah ditutup untuk pencatatan dan Anda hanya dapat membuka sejumlah kecil file.sumber
su
melakukan root dansu
kembali ke pengguna:su -c "ulimit -Hn 6000 ; su $USER"
ulimit -Hn 6000; ulimit -Sn 6000
sebagai root/etc/limits.*
. Batas ini diterapkan setiap kali modul PAMpam_limits.so
dipanggil. Biasanya pada awal sesi. Misalnya di Ubuntu 14.04 itu di alat-alat / perintah:cron
,login
(text console login),lightdm
(GUI login),su
. Anda dapat mengatur di manapam_limits
digunakan/etc/pam.*
. Lihat misalnya: faqs.org/docs/securing/chap5sec44.htmlSaya memiliki Peringatan PHP di error.log Apache saya:
Jadi saya tahu, apache menetapkan nilai ini satu per satu saat memulai (pada Ubuntu 14.04 saya). Ini dikonfigurasi dalam
/etc/apache2/envvars
. Ia mengatakan:jadi saya harus menyesuaikan baris ketiga.
sumber