我不习惯用 bash 编写代码,但我正在自学。我正在尝试创建一个脚本,该脚本将从进程列表中查询信息。我已经做到了,但我想更进一步并做到这一点:
- 如果存在操作系统,则该脚本使用一组命令运行。
- 如果存在 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