• 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]# 


    又有报错,不过这就是另外一个问题了.

  • 相关阅读:
    运维工程师的四个阶段
    必须知道的Linux内核常识详解
    Centos7/RHEL7 开启kdump
    sort实现ip排序
    如何判断是否开启超线程
    Django---进阶12
    Django---进阶11
    前端---进阶8
    前端---进阶7
    前端---进阶6
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3299281.html
Copyright © 2020-2023  润新知