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下执行sh文件报错:oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied的更多相关文章

  1. linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

    一.linux下编译make文件报错“/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/41542101 ...

  2. linux下执行QT可执行文件报错

    老样子,不多BiBi,直接进入主题! 有时候在linux下编译好QT程序,用QTCreator运行没问题,打包移植到另一台机器上,用命令./XX执行就会报错:error while loading s ...

  3. 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

    PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plai ...

  4. Linux下执行Java程序报错

    在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量 ...

  5. Linux下Tomcat项目启动报错

    Linux下Tomcat项目启动报错 org.springframework.beans.factory.CannotLoadBeanClassException: Error loading cla ...

  6. Linux下安装Tomcat启动报错

    一.报以下错误: Using CATALINA_BASE:   /home/apache-tomcat-7.0.72Using CATALINA_HOME:   /home/apache-tomcat ...

  7. linux下unzip解压报错“symlink error: File name too long”怎么办?提供解决方案。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分享unzip工具的一个bug." 最近在研究菠菜站,中间用到了Spidermonkey,碰到一些小波折,在这里分享出来,以便大家 ...

  8. Linux - xshell上传文件报错乱码

    xshell上传文件报错乱码,解决方法 rz -be 回车 下载sz  filename

  9. 解决Linux下编译.sh文件报错 “[: XXXX: unexpected operator”

    本人经常在Linux通过编译 .sh文件来生成工程,之前一直都没问题,代码一直都没变,但是今天编译的时候,却提示错误:

随机推荐

  1. COM编程-注册DLL形式的COM服务器

    这篇文章不涉及任何的有关COM的技术的讲解,仅仅的说一下写好的DLL形式的COM怎么使用.如下图所示,我已经有了一个DLL形式的COM服务器和一个使用COM服务器的COM客户端: 现在这个DLL的CO ...

  2. Ruby学习: 全局变量 和常量

    一.全局变量 ruby中支持全局变量,ruby中的全局变量有如下几个特点: 1)标识符以$开头标记 2)全局变量可以在程序的任何地方加以引用 3)全局变量无需提前进行变量声明.引用尚未初始化的全局变量 ...

  3. matrix67:kmp算法详解

    个人认为KMP是最没有必要讲的东西,因为这个东西网上能找到很多资料.但网上的讲法基本上都涉及到“移动(shift)”.“Next函数”等概念,这非常容易产生误解(至少一年半前我看这些资料学习KMP时就 ...

  4. HDU 4267 线段树 离散点区间更新, 自叶子节点至根单点查询

    题意: n个数字 下面n个数字表示数列 2个操作 1 [u, v]  k  add [u,v ]区间 (u点要计算)每隔k个位置,该数字+add 2 pos 询问 pos下标的值(下标从1开始) 思路 ...

  5. C# 网络编程 Part.1

    本人也是新手,对网络编程一窍不通,所以从今天开始我将学习网络编程的基础知识,在此一一贴出来,编辑成一个系列! 1.为自己复习巩固用 2.可以找到同时在学习网络编程的同学,一起讨论交流,促进学习效率及其 ...

  6. PHP学习笔记8-文件操作

    在data文件中写入数据: <?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/29 * Time: 17 ...

  7. 关于RtlInitUnicodeString感想

    01 VOID RtlInitUnicodeString (OUT PUNICODE_STRING DestinationString,IN PCWSTR SourceString OPTIONAL) ...

  8. Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)

    Qt线程间共享数据主要有两种方式: 使用共享内存.即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的: 使用singal/slot机制,把数据 ...

  9. 制作Linux(Fedora、Ubuntu、CentOS)优盘启动

    随着嵌入式技术的快速发展,Linux快速发展过一段时间.虽然现在不是很热,但是linux在现实社会的使用还是很有用处.而光盘有有些落伍,不仅浪费而且不环保,所以质优价廉的优盘就脱颖而出.所以,用优盘制 ...

  10. Flowers(二分水过。。。)

    Flowers Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...