2017-06-12 5 views
0

多くのLinuxホストが正しく設定されていることを確認したいと思います。現在、私はsysctl.confのをgrepをしてulimitのようなコマンドを実行することにより、これを行うことができます。Pythonでulimitとsysctl.conf変数にプログラムでアクセスできますか?

[[email protected] ~]$ tail -2 /etc/sysctl.conf 
fs.file-max = 65536 
vm.max_map_count = 262144 
[[email protected] ~]$ ulimit -u 
4096 

を私は、次のすべてのデータを収集するスクリプトを記述したいと思います:

  • 最大ファイルディスクリプタ
  • マックスは、私は私の手動プロセスを自動化することで、これを取得することができ、
  • 最大マップ数

は確かにスレッドが、目がありますPythonでこのデータを取得するプログラム的な方法ですか?私は、OSが何を値として報告しているのか、設定ファイルに何があるのか​​を知りたいのです。

答えて

3

あなたがこの情報を得ることができる2つの場所があります:resource moduleを使用し、ulimit情報について

  • は、プロセス制限はresource.RLIMIT_NPROC定数です。

    import resource 
    
    nproc_soft, nproc_hard = resource.getrlimit(resource.RLIMIT_NPROC) 
    
  • 電流sysctl.conf値を読み出すため、/proc/sysファイルシステムを読み出します。 sysctl.confマップ一対一そのシステム内のパスへのオプション、ちょうどパス区切りで.を置き換える:エクセレント

    # read the current setting for fs.file-max 
    with open('/proc/sys/fs/file-max') as f: 
        file_max = int(f.read()) 
    
    # thread count limit, kernel.threads-max 
    with open('/proc/sys/kernel/threads-max') as f: 
        threads_max = int(f.read()) 
    
    # map count limit, vm.max_map_count 
    with open('/proc/sys/vm/max_map_count') as f: 
        max_map_count = int(f.read()) 
    
+0

は、ありがとうございました! –

関連する問題