startOSW.sh: ./OSWatcher.sh: /bin/ksh: bad interpreter: Permission denied解決
1 察看oswatcher_restart.sh的內容
[root@xxdb0402 dbscripts]# more oswatcher_restart.sh
#!/bin/ksh
#export oswdir=`df |grep mysqllog|awk {'print $6}'`
export oswdir=/mysqllog
#th=`ps -ef|grep -v $$|grep OSWatcher.sh`
#echo $th;
if [ `ps -ef|grep -v grep|grep OSWatcher.sh|wc -l` = "0" ]
then
cd $oswdir/osw
echo "begin 1"
sh startOSW.sh 60 216
else
echo "OSWatcher is running "
fi
exit
2 run之後報錯
[root@xxdb0402 dbscripts]# bash -x oswatcher_restart.sh
+ export oswdir=/mysqllog
+ oswdir=/mysqllog
++ ps -ef
++ grep -v grep
++ grep OSWatcher.sh
++ wc -l
+ '[' 0 = 0 ']'
+ cd /mysqllog/osw
+ echo 'begin 1'
begin 1
+ sh startOSW.sh 60 216
+ exit
[root@xxdb0402 dbscripts]# startOSW.sh: ./OSWatcher.sh: /bin/ksh: bad interpreter: Permission denied
嘗試過的解決辦法
1 重新安裝ksh,還是報一樣的錯誤。
2 直接執行 sh startOSW.sh 60 216 ,也是報一樣的錯誤
3 文件格式的問題,我是從prod上面copy到pc本地的,然後從pc本地copy到測試linux環境的,我刪除掉sh文件,直接在prod上面vim,後copy文字出來,貼到test linux環境,執行後還是報一樣的錯誤。
最後,我嘗試,將文件內容 startOSW.sh以及startOSW.sh中的首行的 #!/bin/ksh 引用刪除掉,再執行bash -x oswatcher_restart.sh,OK,不會再報 /bin/ksh: bad interpreter: Permission denied的錯誤了。