使用Linux strace命令来跟踪 bdump目录的x权限丢失时sqlplus / as sysdba 的输出

在上一篇文章中,说到bdump目录的x权限丢失,导致oracle数据库异常。

下面就来用linux 的strace命令来跟踪一下,当bdump目录的x权限丢失时,sqlplus / as sysdba会有什么样的输出:

strace命令如下,该命令来源于:Using Strace in Linux to Debug Hang Type Problems (Doc ID 1391746.1)

strace -fe verbose=all -e write=all -e read=all -o /u02/app/output7.txt /u02/app/oracle/product/11.2.0.4/db_1/bin/sqlplus / as sysdba

当上面的strace命令执行完毕后,output7.txt的大小为:

[[email protected] app]# pwd
/u02/app
[[email protected] app]# du -sh output7.txt
54M     output7.txt

在该文件的中,有如下信息:

5774  stat("/u01/app/oracle/diag", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
5774  stat("/u01/app/oracle/diag/rdbms", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
5774  stat("/u01/app/oracle/diag/rdbms/test", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
5774  stat("/u01/app/oracle/diag/rdbms/test/test", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
5774  stat("/u01/app/oracle/diag/rdbms/test/test/trace", {st_mode=S_IFDIR|0650, st_size=49152, ...}) = 0   --->此处说明该bdump目录的权限为650
5774  mkdir("/u01/app/oracle/diag/rdbms/test/test/trace", 0775) = -1 EEXIST (File exists) ----->此处要以755权限新建该bdump目录,只是由于该目录已经存在而建立失败。

而当bdump目录有x权限时,sqlplus / as sysdba的strace跟踪如下:

6451  stat("/u01/app/oracle", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
6451  getrlimit(RLIMIT_NOFILE, {rlim_cur=64*1024, rlim_max=64*1024}) = 0
6451  open("/proc/self/fd/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
6451  fcntl(5, F_GETFD)                 = 0x1 (flags FD_CLOEXEC)
6451  getrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
6451  stat("/u01/app/oracle/diag", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/trace", {st_mode=S_IFDIR|0750, st_size=49152, ...}) = 0 --->该bdump权限是750
6451  stat("/u01/app/oracle/diag/rdbms/test/test/alert", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/incident", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata_pv", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata_dgif", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/hm", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/ir", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/incpkg", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/sweep", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/lck", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/cdump", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/stage", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
6451  lstat("/u01/app/oracle/diag/rdbms/test/test/metadata/ADR_CONTROL.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata/ADR_CONTROL.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  lstat("/u01/app/oracle/diag/rdbms/test/test/metadata/ADR_INVALIDATION.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata/ADR_INVALIDATION.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  lstat("/u01/app/oracle/diag/rdbms/test/test/metadata/INC_METER_IMPT_DEF.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata/INC_METER_IMPT_DEF.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  lstat("/u01/app/oracle/diag/rdbms/test/test/metadata/INC_METER_PK_IMPTS.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata/INC_METER_PK_IMPTS.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  lstat("/u01/app/oracle/diag/rdbms/test/test/metadata/INCIDENT.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  stat("/u01/app/oracle/diag/rdbms/test/test/metadata/INCIDENT.ams", {st_mode=S_IFREG|0640, st_size=65536, ...}) = 0
6451  brk(0xd867000)                    = 0xd867000
6451  socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 6
6451  bind(6, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
6451  close(6)                          = 0
6451  access("/u02/app/oracle/product/11.2.0.4/db_1/network/admin/sqlnet.ora", F_OK) = -1 ENOENT (No such file or directory)
6451  stat("/u02/app/oracle", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
6451  stat("/u02/app/oracle/diag", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
6451  stat("/u02/app/oracle/diag/clients", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
6451  uname({sys="Linux", node="rhel63single", ...}) = 0
6451  getuid()                          = 500
6451  socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 6
6451  connect(6, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
6451  close(6)                          = 0
6451  socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 6
6451  connect(6, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
6451  close(6)                          = 0
6451  open("/etc/nsswitch.conf", O_RDONLY) = 6
6451  fstat(6, {st_mode=S_IFREG|0644, st_size=1688, ...}) = 0
6451  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe94438c000
6451  read(6, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1688
时间: 2024-11-07 03:13:04

使用Linux strace命令来跟踪 bdump目录的x权限丢失时sqlplus / as sysdba 的输出的相关文章

Linux 常用命令之文件和目录

1. cd 命令格式:cd  [dirName](cd和目录之间使用空格隔开) 作用:切换当前目录至dirName. 实例: cd /home 切换当前目录到/home (查看当前目录命令为pwd) cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd ~ 进入个人的主目录 2. ls 命令格式:ls [选项] [目录名] (目录名为空时表示当前目录) 作用: 查看目录中的文件 常用选项: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -l 除了文件名之外,

Linux常用命令之文件和目录操作命令

以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1)

Linux strace命令(转)

简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备.strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间. 输出参数含义 [email protected]:/usr# strace cat /dev/null execve("/bin/cat", ["cat"

LINUX常用命令(二)目录和文件管理

一.Linux命令基础 1.命令分类 ■内部命令:继承与Shell解释器程序内部的一些特殊指令,也称为內建指令.没有单独对应的系统文件,只要Shell解释器被运行,内部指令就自动载入内存了.内部命令无需从硬盘中重新读取文件,因此执行效率更高. ■外部命令:指的是linux系统中能够完成特定功能的脚本文件或二进制程序,每个命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令,所以成为外部命令.Linux系统必须知道外部命令对应的文件位置,才能够由Shell加载并执行. 2.命令的通用格

linux基础命令-管理文件和目录

今天学习了对Linux命令的理解和Linux系统中对文件和目录进行管理的基础命令. 在Linux系统中需要通过命令来实现某一项功能,Linux命令的执行需要依赖于Shell命令解释器.Shell是在Linux系统中运行的一种特殊程序,Shell解释器位于用户和内核之间,Shell接收到用户的命令并进行解释,然后将需要执行的的操作传递给内核来执行.根据Linux命令和Shell程序的关系,分为内部命令和外部命令. Linux命令对大小写敏感,格式:命令字 [选项] [参数] 以下辅助操作可以提高输

一天一个Linux基础命令删除文件或目录命令rm

rm  删除文件命令 1.命令格式 rm [options]  file... 2.命令功能 rm命令,删除文件命令,是Linux系统下常用命令,该命令的功能为删除一个文件或者整个目录或者目录中的部分文件,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只删除了链接,原有文件保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf或 rm -rf /).所以,我们在执行rm之前最好先确认一下在哪个

Linux strace命令

一.简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备.strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间. 二.选项 http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 三.实例 http://www.cnb

Linux常用命令(3)-文件和目录管理

(1).Linux 文件权限和目录配置 Linux 文件分三种身份 owner.group.others. 三种权限 read.write.execute #ls -al drwxr-xr-x   1     root   root  4230  2012-09-12 17:21 jdk-7u7 对应文件权限  连接数    用户组  用户 文件大小  最后修改日期      文件名 其中[d] 表示为目录 [-] 表示为文件 文件类型和权限三个为一组,总共三组,其中第一组是文件所有者权限,第二

Linux基础命令之文件和目录操作(二)

. find 用于查找目录下的文件,也可以调用其他命令使用 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] find [选项] [路径][操作语句] options: -depth # 在指定目录下最深层的子目录开始查找 -maxdept levels # 查找最大目录级数,levels为自然数 -regextype type # 正则表达式类型,默认是emacs, tests: -mtime [-n|n|+