linux下執行sh文件報錯:oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied解決
1 查看執行sh文件的內容
[root@xxxdb0402 dbscripts]# more oswatcher_restart.sh
#!/usr/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"
./startOSW.sh 60 216
else
echo "OSWatcher is running "
fi
exit
2 執行sh命令
[mysql@xxxdb0402 dbscripts]$ sh oswatcher_restart.sh
begin 1
oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied
[mysql@xxxdb0402 dbscripts]$
[mysql@xxxdb0402 dbscripts]$ ll /mysqllog/osw/startOSW.sh
-rw-r--r-- 1 755 mysql 1609 Sep 2 18:13 /mysqllog/osw/startOSW.sh
看了,是755的權限啊,怎麼會執行不了了呢?
3 google了下,看到他們說要看前面第一欄的信息,看rwx等信息
r-- --- --- 文文件屬主可讀,但不能寫或執行
r-- r-- --- 文文件屬主和屬組用戶(一般來說,是文件屬主所在的缺省組)可讀
r-- r-- r- - 文任何用戶都可讀,但不能寫或執行
rwx r-- r- - 文文件屬主可讀、寫、執行,屬組用戶和其他用戶只可讀
rwx r-x --- 文文件屬主可讀、寫、執行,屬組用戶可讀、執
rwx r-x r- x 文文件屬主可讀、寫、執行,屬組用戶和其他用戶可讀、執行
rw- rw- --- 文文件屬主和屬組用戶可讀、寫
rw- rw- r- - 文文件屬主和屬組用戶可讀、寫,其他用戶可讀
rw- rw- --- 文文件屬主和屬組用戶及其他用戶讀可以讀、寫,慎用這種權限
設置,因為任何用戶都可以寫入該文件
chmod [who] operator [permission] filename
who 中 u 是文件主屬權限 g 是屬組用戶權限 o 其他用戶權限 a 是所有用戶權限
+ 是增加權限 - 是取消權限 = 是設定權限
r 是讀權限 w 是寫權限 x是執行權限 u,g,o 針對文件屬主、屬組用戶及其他用戶的操作。
4 再看我的ll文件結果,沒有x標示,那就是沒有執行權限.
[mysql@xxxdb0402 dbscripts]$ ll /mysqllog/osw/startOSW.sh
-rw-r--r-- 1 755 mysql 1609 Sep 2 18:13 /mysqllog/osw/startOSW.sh
5 因此重新賦予755權限
[root@xxxdb0402 dbscripts]# chmod 755 /mysqllog/osw/startOSW.sh
[root@xxxdb0402 dbscripts]# ll /mysqllog/osw/startOSW.sh
-rwxr-xr-x 1 755 mysql 1609 Sep 2 18:13 /mysqllog/osw/startOSW.sh
看到了,有了x標示了,表示可以執行了.
6 再次執行sh,ok了。
[root@xxxdb0402 dbscripts]# sh oswatcher_restart.sh
begin 1
oswatcher_restart.sh: ./startOSW.sh: /bin/ksh: bad interpreter: No such file or directory
[root@xxxdb0402 dbscripts]#
又有報錯,不過這就是另外一個問題了.