私はbashでコードを書くことに慣れていませんが、自分で教えています。プロセスリストから情報を照会するスクリプトを作成しようとしています。私はそれをしました、しかし私はそれをさらに進めてそれをそうさせたいです:
- OSが存在する場合、スクリプトは1セットのコマンドで実行されます。
- B OSが存在する場合、スクリプトは異なるコマンドセットで実行されます。
これが私がこれまでに持っているものです。Centosディストリビューションでは動作しますが、Ubuntuでは動作しません。どんな助けでも大歓迎です。
#!/bin/bash
pid=$(ps -eo pmem,pid | sort -nr -k 1 | cut -d " " -f 2 | head -1)
howmany=$(lsof -l -n -p $pid | wc -l)
nameofprocess=$(ps -eo pmem,fname | sort -nr -k 1 | cut -d " " -f 2 | head -1)
percent=$(ps -eo pmem,pid,fname | sort -k 1 -nr | head -1 | cut -d " " -f 1)
lsof -l -n -p $pid > ~/`date "+%Y-%m-%d-%H%M"`.process.log 2>&1
echo " "
echo "$nameofprocess has $howmany files open, and is using $percent"%" of memory."
echo "-----------------------------------"
echo "A log has been created in your home directory"
echo "-----------------------------------"
echo " "
echo ""$USER", do you want to terminate? (y/n)"
read yn
case $yn in
[yY] | [yY][Ee][Ss] )
kill -15 $pid
;;
[nN] | [n|N][O|o] )
echo "Not killing. Powering down."
echo "......."
sleep 2
;;
*) echo "Does not compute"
;;
esac