2008年4月28日星期一

ORACLE-DG实例

今天起ORACLE不能起,当我做到
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
的时候不能启动,然后再做
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03114: not connected to ORACLE
就提示以上任务。
原因后来查明,而且我现在的DG是最大保护模式。因为周五的时候我主库的机器挂了然后重新冷启动的时候按错了机器,先将备库重启了。在主库与备库的交换中出现问题。
解决方法,首先我先期备库将备库的监听器启动,启动备库数据库监听,然后将备库启动到MOUNT。
之后启动主库,然后一步步照做就可以了

春の花嫁

老妹结婚,感想预留

2008年4月25日星期五

T说电影《黄石的孩子》

开始有这个习惯了,周三有聊无聊都会去电影院看本片子,这次看的是《黄石的孩子》。贴合现在的实际发觉这本片子还是满爱国主义的,还是有点迎合PARTY的需要,揭露了丑陋的日帝国主义和腐败的国民党。大概讲述的就是某个英国战地记者为了展现南京屠杀后的真实场面,伪装成红十字会的人进入南京,目睹了大屠杀的真实尽力,然后被日发现,媒体的力量很强大,原来那时候日媒体对外宣称的是日来华进行辅助管理的,看来谁蛊惑谁本事。这时候我们敬爱的周润发出现了,带了武装小分队救了人。在Dr.LEE的指点下送到了黄石,在黄石的孤儿院里由此开始了整个故事主线,如何生活,如何教人等等等等。而主角HOOK也因此开始对这里的孩子和对战争有了新的认识。直到国民党开始溃退,准备占用他们的学校,HOOK转移他们到兰州。直到HOOK死于非命。
整体评价这本片子,是一本很好的爱国主义,他能让你热血沸腾的同时也不让你忘记这段国耻家恨,在加上电影院本该由的音效,你会感觉到轰炸机在你头顶那种撕心裂肺的恐惧,战争带了的是什么。在剪辑中,开头剪的不是很完美,有些交代都不明不白的,跳跃性思维也太强烈了。周润发在里面塑造的不算是我们映像中PARTY,而是一个对日军憎恨,有很强说服力的人。一个亲眼目睹自己父母死亡,姐妹被日军OOXX的小孩在他的几个动作之下就能激起他的愤怒,而直接杀了日本人。HOOK的魅力也很大,不过归根究底还是要以诚待人。HOOK带领了那么多小孩从黄石到兰州,走了3个月~~~~~~驴行啊,其中还是很多精彩说不上来,杨紫琼和女主角并不很出彩。还是本以男人为主线的电影,战争带给我们的思考太多,相比现在的盲目爱国,我们是不是应该作些更好的事情呢。
以诚待人,更有礼貌的看待世间的事情。对人不卑不亢,做更多能够让自己国家强大的事情。

2008年4月17日星期四

Shell实际运用和Oracle DataGuard一天小结

在实际生产应用中,其实我可以这么些,首先判断这个人是不是ROOT
那么就需要在脚本中写上这么个判断语句:
#!/bin/sh

#ifroot
if [ "$LOGNAME" != "root" ]
then
echo "You
need to be
root to run this script" >&2
exit 1
else
echo "Yes
indeed
you are $LOGNAME proceed"
fi



return是函数返回,exit是结束进程.
exit(0); /*这个是正常的关闭所有程序 */
exit(1); /*这个就刚好相反,有错误的关闭 */

/dev/null #表示的是类似于windows的回收站,无限大 2>&1#表示将这些在后台处理

同样的语句在solaris下和RH下有点不同,当我使用exit语句时rh下会执行,而solaris直接就是跳出。也是是因为SHELL不同的缘故。

在for in中加” ”就是字符串,数字不加就是数字显示的是竖直排列,家了引号后就是横向排列了。
在使用的时候Sorlaris不支持$()这样的在shell中嵌套的写法,反而是支持``反引号的写法,RH测试两者都支持。

可以用ls wc –l显示文件夹的文件数,用shell的话是做个count
#!/bin/sh
#forcount
counter=0
for files in *
do
counter=`expr $counter + 1`
done
echo "count the `pwd` total files
is $counter"


要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。
使用mysqld --verbose --help显示mysqld的所有选项。



使用脚本中的函数参数作为shell命令,一开始不是很明白现在有点明白了,在刚刚开始的使用你如同平时写脚本一般将函数写进去,例如
findit(){
if [ $# -lt 1 ]
then
echo "usage :findit file"
return
1
fi
find / -name $1
}


然后写完chmod后,在执行下. ./XXX,当你在命令行下用set命令后你会发现他已经被加载到你的用户下,当然了在你退出这个session后,会自动消失的。那么这个使用你在使用这个函数类似于findit他就不会报错,而且也不需要向刚刚执行脚本一样,而他直接已经加载到你的bin下,所以当我使用findit main的时候他会全盘搜索,但是用于我是用其他用户的所以不能找到,因为权限不够。
当使用了unset命令后则可以将已经加载的这个函数去除。Set后他已经不再了

参数输入没怎么细看,有些用的找有些用不着 -、-

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 也就是说可以基于SSH进行文件的传输
ssh 下如果我登陆别的服务器或者说是被改变了端口的服务器那么我需要用到的是
ssh –p 10088 192.168.18.91 假如我91的SSH端口是10088

Oracle DATAGUARD
-------------------------------------------------------------------------
我在备份服务器上MOUNT的时候只用了一个CONTROLFILE所以我alter system mount database;的时候怎么也MOUNT不起来。


我在做采用ARCH归档日志的最大性能
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both;
SQL> alter system set log_archive_dest_state_2=enable
scope=both;
SQL>alter system archive log current;

在做第一句的时候提示不能写pfile,然后用show parameter spfile以后发觉我果然是用pfile启动的,那么之后我就直接修改目前pfile的语句,而
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both

也改成

SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=memory;
在vi中编辑
*.log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
*.log_archive_dest_state_2=enable scope=both



关于如何检查和校验是否备用服务器设置成功
[3] STANDBY_ARCHIVE_DEST
*.standby_archive_dest='/oracle/oracle9i/oradata/archive' 这段在备库的文件中添加表示的是你将传过来的log存放的位置,那么还可以在你ORACLE安装的admin/cdump下找到,alert_log..这个文件中找到,当你在主库做一次log切换的时候例如说你alter system switch logfile;之后那么就会从主库传log到备库上去,而且同时在上面提到的两个log文件中出现。
以上是我白天做了一天的DG的一些错误解析,那么我晚上小小的来解析下。
这个做完大概是MAXIMIZE PERFORMANCE。由于是练手,那么其实在练习过程前,领导已经练习过了做好了大概的pfile,所以在使用之前我并没有自己建立属于自己的PFILE,在我做
SQL>SHOW PARAMETER SPFILE
则显示的空字段,那么我是以PFILE启动的,将文档设为强制
SQL>ALTER DATABASE FORCE LOGGING;
两台机子的环境要设成一样。然后将进行以下步骤
$cd $ORACLE_BASE
$mkdir -p oradata/tbdb/archiv
$mkdir -p
admin/tbdb/bdump
$mkdir -p admin/tbdb/cdump
$mkdir -p admin/tbdb/udump
我因为篇幅的关系我下面就不写了,但是我现在环境下$diff initora9i.ora_pri initora9i_std比较了一下其中
#if change controlfile then edit this
*.control_files='/u01/oracle/oradata/tbdb/control01.ctl',
'/u01/oracle/oradata/tbdb/control02.ctl',
'/u01/oracle/oradata/tbdb/control03.ctl'
#standby database parameter
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.standby_archive_dest='/u01/oracle/oradata/tbdb/archive'
*.fal_server='DBPRIMARY'
*.fal_client='DBSTANDBY'
大概的差距如何具体解释下,在写的过程中,如果你把controlfile改写了后需要把位置改下,同时把备课的时间改写,特别要注意的是fal_server和fal_client的改写,在fal_client这里很重要的就是你以后再实行找到备库的名字。
在主库rman下backup database和logfile,在备库中Oracle

$rm $ORACLE_HOME/dbs/orapw$ORACLE_SID
$orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test entries=4
我在做的时候按照教程设了两个listener一个1521一个1522端口。在备库上较复杂在主库上则比较简单。
下一步就需要在主库上生成控制文件SQL> alter database create standby controlfile as '路径和控制文件名'在做一次$ scp,例如今天的环境下$scp 路径和名称 192.168.18.92:'路径和名称'。
在备库中启动
SQL> connect / as sysdba Connected to an idle instance.
SQL>startup nomount pfile=路径
SQL>alter database mount standby database;

之后rman了以后进行restore database和restore archivedlog all.
在arch模式下用
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both;
SQL>alter system set log_archive_dest_state_2=enable scope=both;
SQL>alter system archive log current;
如何验证呢
SQL>SELECT SEQUENCE#,FIRST_TIME,NEXT_TIME FROM V$ARCHIVED_LOG;
这样可以看

当我在tail -10 $ORACLE_BASE/ora9/admin/dbump/alter_.....log这个的时候可以看出他现在正在等哪个,第一次我没有做成功的原因是我不知道如何将日志穿到备库上。而这时候需要老师点播了,在主库上做一次SQL>alter system switch logfile;这时候tail的时候你可以看到已经传到备库了。今天就到这里了。明天最剩下的工作。

2008年4月16日星期三

Shell总结

Shell的PDF基本上已经看完了,现在剩下的工作就是消化和吸收,其中还是有很多东西不明白,当然的在后期的摸索中度过,当然了现在小部分的SHELL语句已经基本上能读懂,但是大量的还是需要自己去看去体会。
http://publish.itpub.net/zt/oracle11g/index.html11G

2008年4月15日星期二

Shell记录20080415

在实际生产应用中,其实我可以这么些,首先判断这个人是不是ROOT
那么就需要在脚本中写上这么个判断语句:
#!/bin/sh
#ifroot
if [ "$LOGNAME" != "root" ]
then
echo "You need to be root to run this script" >&2
exit 1
else
echo "Yes indeed you are $LOGNAME proceed"
fi


return是函数返回,exit是结束进程.
exit(0); /*这个是正常的关闭所有程序 */
exit(1); /*这个就刚好相反,有错误的关闭 */

/dev/null #表示的是类似于windows的回收站,无限大 2>&1#表示将这些在后台处理

同样的语句在solaris下和RH下有点不同,当我使用exit语句时rh下会执行,而solaris直接就是跳出。也是是因为SHELL不同的缘故。

在for in中加” ”就是字符串,数字不加就是数字显示的是竖直排列,家了引号后就是横向排列了。
在使用的时候Sorlaris不支持$()这样的在shell中嵌套的写法,反而是支持``反引号的写法,RH测试两者都支持。

可以用ls wc –l显示文件夹的文件数,用shell的话是做个count
#!/bin/sh
#forcount
counter=0
for files in *
do
counter=`expr $counter + 1`
done
echo "count the `pwd` total files is $counter"

要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。
使用mysqld --verbose --help显示mysqld的所有选项。



使用脚本中的函数参数作为shell命令,一开始不是很明白现在有点明白了,在刚刚开始的使用你如同平时写脚本一般将函数写进去,例如findit(){
if [ $# -lt 1 ]
then
echo "usage :findit file"
return 1
fi
find / -name $1
}
然后写完chmod后,在执行下. ./XXX,当你在命令行下用set命令后你会发现他已经被加载到你的用户下,当然了在你退出这个session后,会自动消失的。那么这个使用你在使用这个函数类似于findit他就不会报错,而且也不需要向刚刚执行脚本一样,而他直接已经加载到你的bin下,所以当我使用findit main的时候他会全盘搜索,但是用于我是用其他用户的所以不能找到,因为权限不够。
当使用了unset命令后则可以将已经加载的这个函数去除。Set后他已经不再了

开心啊开心

我要做干爸爸,我要做干爸爸,哈哈,

2008年4月14日星期一

These days

I'm very happy The Great Firewall had been gotten my Blog in my motherland, and now it's still out of the there and still be contraled.
做了些SHELL联系,然后呢昨天K了3个小时的歌,非常非常的无聊。汇报完毕,继续工作,当然了,还有些没写。 稍后添加关于SHELL的笔记。

忘了补一句,很感谢林SAN的支持,让我有这么个好机会,可是由于一点阻力,最终无法成行,还是十分感谢他对我能力的肯定,到底还是要请他吃顿饭,结果大家AA了。由于广告嫌疑,这个地方就不说是哪里了,看地图吧,味道整体来说还不错,上菜的速度也很快,价格也实惠。物美价廉啊

晚上练习SHELL,在echo过程中一个很难得问题也可以说很简单" "或者' '这样都可以显示echo后面的,但是如何显示shell固有的命令呢,查了很久试了很久其实很简单``这个就是tab上面的那个键位,这样可以显示,但是itpub上有一位大哥说还是比较现实用$()这个会更好,但是呢现在来看似乎$()不是很成功

2008年4月9日星期三

窘境

不过怎么说,现在对我来说处于窘境。。手机,工作,生活,感情
老妈买的幸运珠好像变色了,跟现在状况一样。

2008年4月8日星期二

感觉

在路途上想起爱情来。 觉得最好的爱情是两个人彼此做个伴。
不要束缚,不要缠绕,不要占有,
不要渴望从对方身上挖掘到意义,那是注定要落空的东西 而应该是, 我们两个人并排站在一起,看看这个落寞的人间。
有两个独立的房间, 各自在房间里工作。
一起找小餐馆吃晚饭。
散步的时候能够有很多话说。
拥抱在一起的时候觉得安全。
不干涉对方的任何自由。
哪怕他还在和旧日女友联络。
不要对彼此表白,
表白是变相的索取。很平淡。很熟悉。
好像他的气味就是你自己身上的气味。
不管在何时何地,都要留给彼此距离。
随时可以离开
想安静的时候, 即使他在身边, 也像是自己一个人。 有一致的生活品味。 包括衣服,唱片,香水,食物等等。
不太会想起对方,但累的时候,知道他就是家 我们很容易碰到的, 都是自私或者愚蠢的人。 他们爱别人, 只是为了证明别人能够爱自己。 或者抓在手里不肯放,直到手里的东西死去。 成熟的感情都需要付出时间去等待它的果实。 但是我们一直欠缺耐心。 有谁会用10年的时间去等一个远行的人。
有谁会在10年的远行之后,依然想回头找到那个人。
有些爱情因为太急于要得到它的功利, 无法被证明, 于是也就得不到成立。
——载“想起来的爱情”

朋友的BLOG转来的,貌似很喜欢这种感觉

2008年4月1日星期二

Solaris学习笔记20080331

想看看Solaris的FTP服务,所以去网站上找,可是没有找到如何安装。。而SUN提供的技术文档里也没有关于这个的说法,结果#svcs ftp发现竟然是online状态开着的,所以粗略研究了下了,在/etc/ftpd下有人文件,大概的说下ftpusers是被禁止的用户而不是开放的用户,比如说root,而ftphosts列出的允许或拒绝从各种主机登录的,cat了一下发觉没有东西,猜想是不是类似于ip+用户名。Ftpaccess是主文件,只用使用ftpaccess –a了以后才能调用/etc/ftpd/ftpaccess的文件。
里面一些关键词:
格式如下class typelist addrglob
Class 用于定义关键词,里面目前有realusers guestusers anonusers,real当然表示本机的用户,用anonymous进去发现不行,登录不了,然后切换到那天建立的ccav用户发觉就可以了。
Typelist呢表示三类用户,addrglob呢表示地址,默认为*
添加权限:
Limit class n times [message_file]
在最后两行但是被#注释掉了,limit表字串意思,class表刚刚定义的类,主要是guest,realuser,anon.n表用户数,times表相连接日期和时间,any表任何日期,message_file表用户被拒绝访问的消息文件。
按照所提供的意思,可以把下面三行的意思可以认为如下:
Limit-time anonymous 30 可以理解成限制链接时间,匿名,30分钟
Limit anonousers 10 wk0730-1800 /etc/… 可以理解为限制匿名用户为10个在工作的时间早7:30-18:00 信息为如下目录
Limit anonousers 50 SaSuAny1800-0730 /etc/…可以理解为限制匿名用户为50个在周六或者周日和其他任何时间的晚18:00-7:30
在环境中用/usr/sbin/ftpwho命令可以查看目前正在使用的用户是哪些
/usr/sbin/ftpcount可以查看目前哪些用户和登录限制
Loginfails 表示登录失败的次数
想修改ftpuser然后重启服务,发觉根本不会搜了下
ftp pkill -HUP inetd (ftp)
dns pkill -HUP named(telnet)
限制对缺省服务器的访问增加以下字段
Defaultserver deny username[username]禁止对defaultserver的受限访问权限的用户
Defaultserver allow username[username]允许对defaultserver的受限访问权限的用户
阻止匿名用户访问defaultserver private
对用户创建我还是习惯于unix下的useradd这个命令,对于文中提到的脚本ftpconfig我找了下似乎没有。那对于欢迎信息和帮助文档而言,具体的格式都和上面的差不对,标签分别是message和readme。
对文件访问的命令
Command yesno typelist command包括了chmod,delete..等等啦,而后面后最yes or no这些都可以在具体文档那个中查看出来。
上传文件upload [absoluterelative][class=]...[-] root-dir \
dirglob yesno ownergroupmode [dirsnodirs][]
path-filter typelistmesgallowed_charset{disallowedregexp...}
例子:upload /export/home/ftp /incoming yes ftpadm ftpadmin 0440 nodirs
path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$^[.-]
可以理解为对前个目录使用chroot的ftp帐户可传到/incoming目录下,文件为ftpadm和组ftpadmin拥有,nodirs的关键字为0440阻止匿名用户创建子目录。
在ftpaccess中的noretieve的意思是可禁止用户检索文件。
在ftpaccess中添加virtual address rootbannerlogfile path可对虚拟服务进行编辑
例子virtual 192.168.18.95 root /var/ftp/vritual/ftp-serv
在/etc/ftpd/ftpservers添加以下
address /conig-ile-dir
address 是IP地址 conig-ile-dir 是目录

启动ftp服务
# svcadm enable network/ftp
瞌睡 -。- ~~~

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。

I hate Vi!!!
查看ixpub上的solaris的维护,这些和LINUX机器上的差不多
#dmesg grep cpu 查看cpu
#dmesg grep mem 查看内存
#vxdisk list查看磁盘的个数
#df –k 如何查看文件系统
#format 如何查看磁盘的大小
#cd /opt/SUNWexplo/bin/explorer 收集信息的工具
#explorer
查看informix的版本
#su - informix
informix>onstat –
#netstat –in查看子网 想看看Solaris的FTP服务,所以去网站上找,可是没有找到如何安装。。而SUN提供的技术文档里也没有关于这个的说法,结果#svcs ftp发现竟然是online状态开着的,所以粗略研究了下了,在/etc/ftpd下有人文件,大概的说下ftpusers是被禁止的用户而不是开放的用户,比如说root,而ftphosts列出的允许或拒绝从各种主机登录的,cat了一下发觉没有东西,猜想是不是类似于ip+用户名。Ftpaccess是主文件,只用使用ftpaccess –a了以后才能调用/etc/ftpd/ftpaccess的文件。
里面一些关键词:
格式如下class typelist addrglob
Class 用于定义关键词,里面目前有realusers guestusers anonusers,real当然表示本机的用户,用anonymous进去发现不行,登录不了,然后切换到那天建立的ccav用户发觉就可以了。
Typelist呢表示三类用户,addrglob呢表示地址,默认为*
添加权限:
Limit class n times [message_file]
在最后两行但是被#注释掉了,limit表字串意思,class表刚刚定义的类,主要是guest,realuser,anon.n表用户数,times表相连接日期和时间,any表任何日期,message_file表用户被拒绝访问的消息文件。
按照所提供的意思,可以把下面三行的意思可以认为如下:
Limit-time anonymous 30 可以理解成限制链接时间,匿名,30分钟
Limit anonousers 10 wk0730-1800 /etc/… 可以理解为限制匿名用户为10个在工作的时间早7:30-18:00 信息为如下目录
Limit anonousers 50 SaSuAny1800-0730 /etc/…可以理解为限制匿名用户为50个在周六或者周日和其他任何时间的晚18:00-7:30
在环境中用/usr/sbin/ftpwho命令可以查看目前正在使用的用户是哪些
/usr/sbin/ftpcount可以查看目前哪些用户和登录限制
Loginfails 表示登录失败的次数
想修改ftpuser然后重启服务,发觉根本不会搜了下
ftp pkill -HUP inetd (ftp)
dns pkill -HUP named(telnet)
限制对缺省服务器的访问增加以下字段
Defaultserver deny username[username]禁止对defaultserver的受限访问权限的用户
Defaultserver allow username[username]允许对defaultserver的受限访问权限的用户
阻止匿名用户访问defaultserver private
对用户创建我还是习惯于unix下的useradd这个命令,对于文中提到的脚本ftpconfig我找了下似乎没有。那对于欢迎信息和帮助文档而言,具体的格式都和上面的差不对,标签分别是message和readme。
对文件访问的命令
Command yesno typelist command包括了chmod,delete..等等啦,而后面后最yes or no这些都可以在具体文档那个中查看出来。
上传文件upload [absoluterelative][class=]...[-] root-dir \
dirglob yesno ownergroupmode [dirsnodirs][]
path-filter typelistmesgallowed_charset{disallowedregexp...}
例子:upload /export/home/ftp /incoming yes ftpadm ftpadmin 0440 nodirs
path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$^[.-]
可以理解为对前个目录使用chroot的ftp帐户可传到/incoming目录下,文件为ftpadm和组ftpadmin拥有,nodirs的关键字为0440阻止匿名用户创建子目录。
在ftpaccess中的noretieve的意思是可禁止用户检索文件。
在ftpaccess中添加virtual address rootbannerlogfile path可对虚拟服务进行编辑
例子virtual 192.168.18.95 root /var/ftp/vritual/ftp-serv
在/etc/ftpd/ftpservers添加以下
address /conig-ile-dir
address 是IP地址 conig-ile-dir 是目录

启动ftp服务
# svcadm enable network/ftp
瞌睡 -。- ~~~

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。

I hate Vi!!!
查看ixpub上的solaris的维护,这些和LINUX机器上的差不多
#dmesg grep cpu 查看cpu
#dmesg grep mem 查看内存
#vxdisk list查看磁盘的个数
#df –k 如何查看文件系统
#format 如何查看磁盘的大小
#cd /opt/SUNWexplo/bin/explorer 收集信息的工具
#explorer
查看informix的版本
#su - informix
informix>onstat –
#netstat –in查看子网

.tar解包: tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName---------------------------------------------.bz2解压1:bzip2 -d FileName.bz2解压2:bunzip2 FileName.bz2压缩: bzip2 -z FileName.tar.bz2解压:tar jxvf FileName.tar.bz2压缩:tar jcvf FileName.tar.bz2 DirName---------------------------------------------.bz解压1:bzip2 -d FileName.bz解压2:bunzip2 FileName.bz压缩:未知.tar.bz解压:tar jxvf FileName.tar.bz压缩:未知---------------------------------------------.Z解压:uncompress FileName.Z压缩:compress FileName.tar.Z解压:tar Zxvf FileName.tar.Z压缩:tar Zcvf FileName.tar.Z DirName---------------------------------------------.tgz解压:tar zxvf FileName.tgz压缩:未知.tar.tgz解压:tar zxvf FileName.tar.tgz压缩:tar zcvf FileName.tar.tgz FileName---------------------------------------------.zip解压:unzip FileName.zip压缩:zip FileName.zip DirName---------------------------------------------.rar解压:rar a FileName.rar压缩:rar e FileName.rarrar请到:http://www.rarsoft.com/download.htm 下载!解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp rar_static /usr/bin/rar---------------------------------------------.lha解压:lha -e FileName.lha压缩:lha -a FileName.lha FileNamelha请到:http://www.infor.kanazawa-it.ac.jp/.../lhaunix/下载!>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp lha /usr/bin/ ---------------------------------------------.rpm解包:rpm2cpio FileName.rpm cpio -div---------------------------------------------.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea解压:sEx x FileName.*压缩:sEx a FileName.* FileNamesEx只是调用相关程序,本身并无压缩、解压功能,请注意!sEx请到: http://sourceforge.net/projects/sex下载!解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp sEx /usr/bin/