《Oracle DBA的UNIX 袖珍参考手册》笔记12

续上回~越来越简单了~
如果我们要查看某个目录的总大小,可以用  du -sk  命令。例如

'2.70'*orcl-/home/oracle>du -sk /home/oracle
1888    /home/oracle

定位包含特定字符串的文件

'2.70'*orcl-/home/oracle>find . -name "*.sql" -print|xargs grep -i v\$session
./1.sql:select * from v$session;

查找最近创建的文件

'2.70'*orcl-/home/oracle> find . -mtime -1 -print
.
./find
./.ICEauthority
./du
./.bash_history
./1.sql
./.gconfd
./.gconfd/saved_state
./.gnome2
下面的命令查找 1 天内创建的文件。

查找系统中的大文件
下面的命令查找大于 10000 字节的文件:
'2.70'*orcl-/home/oracle>find . -size +10000c -print
./Desktop/oracle dba?unix??????.pdf
./.nautilus/sysstat-5.0.5-19.el4.i386.rpm
./.bash_profile.swo
./.kde/share/config/khotkeysrc
./.kde/share/apps/kconf_update/update.log
./.recently-used

如果不加 c,那么就是查文件大于 10000 个块(512 字节)的文件。有的 Unix 下可以加k,单位就是kb 。

查找大小在某个区间内的文件: 例如,查找大小在 100 到 120 个字节的文件
# find . -size +100c -size -120c -print
如果要查找大小正好是多大的文件,可以这样:
# find . -size 100c -print
上面的命令查找大小正好是 100 个字节的文件。

批量删除修改时间大于7 天的文件
# find . -mtime +7 -exec rm {} \;

批量删除过期的trace 文件脚本(del.sh)
'2.70'*orcl-/home/oracle>cat -v del.sh
#!/bin/bash
for orACLE_SID in `cat /etc/oratab|\
egrep ':N|:Y'|cut -f1 -d':'`

do
orACLE_HOME=`cat /etc/oratab|grep ^$ORACLE_SID|cut -d":" -f2`

DBA=`echo $ORACLE_HOME|sed -e's:/product/.*::g'`/admin
find $DBA/$ORACLE_SID/bdump -name "*.trc" -mtime -10 -exec rm {} \;
find $DBA/$ORACLE_SID/udump -name "*.trc" -mtime -10 -exec rm {} \;
done
这里需要解释一下DBA=`echo $ORACLE_HOME|sed -e's:/product/.*::g'`/admin
'2.70'*orcl-/home/oracle>DBA=`echo $ORACLE_HOME|sed -e's:/product/.*::g'`/admin
'2.70'*orcl-/home/oracle>echo $DBA
/oracle/admin
将所有的/product/.*替换为空。这里就是把分割符号换成了冒号。你也可以这么来:
sed -e\'s%/product/.*%%g'`/admin
sed -e\'s#/product/.*##g'`/admin
:或#或%中间的特殊符号不被转义

生成空文件(touch)
touch 命令可以用来生成空文件,例如
'2.70'*orcl-/home/oracle>touch cjc.txt

修改默认的文件访问权限(Permissions)
使用umask 命令来设置默认的文件访问权限。掩码的值是服务器默认值(通常是777或者 644)和实际的Unix 用户默认文件权限的差值。例如,如果系统默认 777,用户创建文件的时候访问权限是 755,那么掩码就是 022。下面让我们先来理解 Unix下文件访问权限。
Unix 下文件访问权限分为 3 部分。每一部分代表不同类别用户的访问权限。这三类用户是:

文件所有者
和文件所有者在同一个组中的成员
其它的Unix 用户
因此,如果一个文件的访问权限是751,那么7 分配给所有者,5 分配给和所有者在同一个组中的其他成员,1 分配给其他用户。那么,这些数字到底代表什么意思呢?
   访问权限值                           含义
   4                                     读权限
   2                                     写权限
   1                                    执行权限
通过上表我们可以推算出,7 代表全部权限,5 代表读和执行权限,以此类推。下面,让我们来看一个文件的具体权限。

plain text 纯文本
'2.70'*orcl-/home/oracle>ls -l cjc.txt
-rw-r--r--  1 oracle oinstall 0  8月 25 19:25 cjc.txt
-l 列出文件的详细信息。
-表明这是一个plain 文件。如果是d 则表明是路径
这个文件的访问权限是644

不同的umask 的效果
假设系统默认的用户权限是 777,而我们不希望这样,就应该设置合适的umask。

Unix 的chown 命令可以修改文件的所有者。例如:
# chown oracle:oinstall *
'2.70'*orcl-/home/oracle>ls -al

   -rw-r--r--   1 oracle oinstall    229  8月 20 23:18 a.sh
-rw-r--r--   1 oracle oinstall      0  8月 20 23:15 a.sh~
-rw-------   1 oracle oinstall  18268  8月 25 05:45 .bash_history
-rw-r--r--   1 oracle oinstall     24  7月 28 15:43 .bash_logout
-rw-r--r--   1 oracle oinstall    952  8月 25 19:19 .bash_profile
-rw-r--r--   1 oracle oinstall  12288  7月 28 17:59 .bash_profile.swo
-rw-r--r--   1 oracle oinstall  12288  7月 28 16:21 .bash_profile.swp
-rw-r--r--   1 oracle oinstall    124  8月 10 22:44 .bashrc
-rw-r--r--   1 oracle oinstall    235  8月 21 01:45 b.sh
-rw-r--r--   1 oracle oinstall      0  8月 21 00:23 b.sh~
-rwxr-xr-x   1 oracle oinstall    248  8月 16 21:57 chaoge.sh
-rw-r--r--   1 oracle oinstall      0  8月 16 21:53 chaoge.sh~
-rw-r--r--   1 oracle oinstall    402  8月 19 20:06 chao.sh

上面的命令将文件所有者改成 oracle,所属的组改成 oinstall。如果想将所有子目录及其下面的都改掉,那么用-R 选项。

修改文件的访问权限
   Unix 的chmod 命令可以修改文件的访问权限。例如:
   # chmod 755 *
   # chmod +x *
   # chmod –r *
同样,如果想带子目录修改所有权限,也可以用  -R




[本日志由 nero 于 2009-08-26 12:29 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 还有一天就看完了~
评论: 0 | 引用: 0 | 查看次数: 252
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 开启