SH脚本运行时提示不是目录
#!/bin/sh#system_monitor
day=`date +%m%d%Y`
file=${0%/*}/sysinfo$day
if [ -f $file ]; then
echo "ok">/dev/null
else
echo " date cpu mem load average io sessions inodes">>$file
echo " user system idle free 1 5 15 read write">>$file
echo "">>$file
fi
time=`date '+%m%d %H:%M:%S '`
inodes=`df -i |grep app |awk '{print $5}'`
io=`iostat -k |head -7 |grep sda |awk '{print $3"|"$4}'`
iowait=`iostat -k |head -4 |tail -1|awk '{print $4}'`
load=`uptime |grep load|sed s/\,//g|awk '{printf"%10s %6s %6s", $(NF-2),$(NF-1),$NF}'`
cpu=`vmstat 1 2 | sed -n '$p' |awk '{printf "%8s %6s %9s", $13,$14,$15}'`
real=`vmstat |grep -v |awk '{printf "%12s",$4}'`
httpd_number=`ps -ef|grep httpd|grep -v grep|wc -l|awk '{printf "%9d",$1}'`
app_number=`ps -ef|grep "java"|grep -v grep | wc -l`
oracle_number=`ps -ef|grep "LOCAL=NO"|grep -v grep|wc -l|awk '{printf "%9d",$1}'`
echo "$time $cpu$real$load $io|$iowait$httpd_number+$app_number+$oracle_number|$inodes" >>$file
请大家帮忙看看这段SH脚本代码,为什么运行时候会提示不是目录的问题呢,谢谢了!如图
file=${0%/*}/sysinfo$day是你这个file变量设置的问题吧具体的我没看懂你这个变量{0%/*}这个位置的意思,但感觉你的错误提示是转化一个路径下的文件了但是你却没有这个目录 文件名/路径,这叫什么东西?你到底想把日志写到哪里去?你直接把file=sysinfo$day不就行了? 哦,谢谢了,我可能写错了路径了。不好意思!
页:
[1]