??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产av无码精品,久久精品国产亚洲AV无码偷窥,久久久久久久久无码精品亚洲日韩http://www.tkk7.com/jelver/category/7677.html“一直很多h说我是天才,但我却相信这个世界没有天才。如果没有卓的努力和娴熟的球性,你永q不?x)踢出精彩的球。我从来不会(x)低估努力的重要性,而这正是我对自己的要求。?--|纳?dng)_奥(Ronaldinho)zh-cnWed, 23 Sep 2009 22:05:47 GMTWed, 23 Sep 2009 22:05:47 GMT60Java 调用 Shell 命o(h)http://www.tkk7.com/jelver/articles/296128.html冰河快狼冰河快狼Wed, 23 Sep 2009 02:16:00 GMThttp://www.tkk7.com/jelver/articles/296128.htmlhttp://www.tkk7.com/jelver/comments/296128.htmlhttp://www.tkk7.com/jelver/articles/296128.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/296128.htmlhttp://www.tkk7.com/jelver/services/trackbacks/296128.html q日目中有q样一个需求:(x)pȝ中的外币资金调度完成以后Q要调度信息生成一个Txt文gQ然后将q个Txt文g发送到另外一个系l?Kondor)中。生成文件自然用OutputStreamWirter了,发送文件有两种方式Q一U是用写个一个类gFTP功能的程序,另外一U就是用Java来调用ShellQ在Shell中完成文件的发送操作。我们选择后一U,卛_完成外币资金的调度工作后Q用Java的OutputStreamWriter来生成一个Txt文gQ然后用Java来调用Shell脚本Q在Shell脚本中完成FTP文g到Kondorpȝ的工作?br />     以下为JavaE序JavaShellUtil.javaQ?

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class JavaShellUtil {
//基本路径
private static final String basePath = "/tmp/";

//记录Shell执行状况的日志文件的位置(l对路径)
private static final String executeShellLogFile = basePath + "executeShell.log";

//发送文件到Kondorpȝ的Shell的文件名(l对路径)
private static final String sendKondorShellName = basePath + "sendKondorFile.sh";

public int executeShell(String shellCommand) throws IOException {
int success = 0;
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader = null;
//格式化日期时_(d)记录日志时?br /> DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS ");

try {
stringBuffer.append(dateFormat.format(new Date())).append("准备执行Shell命o(h) ").append(shellCommand).append(" \r\n");

Process pid = null;
String[] cmd = {"/bin/sh", "-c", shellCommand};
//执行Shell命o(h)
pid = Runtime.getRuntime().exec(cmd);
if (pid != null) {
stringBuffer.append("q程P(x)").append(pid.toString()).append("\r\n");
//bufferedReader用于dShell的输出内?bufferedReader = new BufferedReader(new InputStreamReader(pid.getInputStream()), 1024);
pid.waitFor();
} else {
stringBuffer.append("没有pid\r\n");
}
stringBuffer.append(dateFormat.format(new Date())).append("Shell命o(h)执行完毕\r\n执行l果为:(x)\r\n");
String line = null;
//dShell的输出内容,q添加到stringBuffer?br /> while (bufferedReader != null &
&
(line = bufferedReader.readLine()) != null) {
stringBuffer.append(line).append("\r\n");
}
} catch (Exception ioe) {
stringBuffer.append("执行Shell命o(h)时发生异常:(x)\r\n").append(ioe.getMessage()).append("\r\n");
} finally {
if (bufferedReader != null) {
OutputStreamWriter outputStreamWriter = null;
try {
bufferedReader.close();
//Shell的执行情况输出到日志文g?br /> OutputStream outputStream = new FileOutputStream(executeShellLogFile);
outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
outputStreamWriter.write(stringBuffer.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
outputStreamWriter.close();
}
}
success = 1;
}
return success;
}

}

 
 
 
 
以下是Shell脚本sendKondorFile.shQ该Shell脚本的作用是FTP文g到指定的位置Q?

#!/bin/sh

#日志文g的位|?br /> logFile="/opt/fms2_kondor/sendKondorFile.log"

#Kondorpȝ的IP地址Q会(x)生成的文g发送到q个地址
kondor_ip=192.168.1.200

#FTP用户?br /> ftp_username=kondor

#FTP密码
ftp_password=kondor

#要发送的文g的绝对\?br /> filePath=""

#要发送的文g的文件名
fileName=""

#如果Shell命o(h)带有参数Q则第一个参数赋lfilePathQ将W二个参数赋lfileName
if [ $# -ge "1" ]
then
filePath=$1
else
echo "没有文g路径"
echo "没有文g路径\n" >
>
$logFile
return
fi

if [ $# -ge "2" ]
then
fileName=$2
else
echo "没有文g?
echo "没有文g名\n" >
>
$logFile
return
fi

echo "要发送的文g?${filePath}/${fileName}"

cd ${filePath}
ls $fileName
if (test $? -eq 0)
then
echo "准备发送文Ӟ(x)${filePath}/${fileName}"
else
echo "文g ${filePath}/${fileName} 不存?
echo "文g ${filePath}/${fileName} 不存在\n" >
>
$logFile
return
fi

ftp -n ${kondor_ip} <
<
_end
user ${ftp_username} ${ftp_password}
asc
prompt
put $fileName
bye
_end

echo "`date +%Y-%m-%d' '%H:%M:%S` 发送了文g ${filePath}/${fileName}"
echo "`date +%Y-%m-%d' '%H:%M:%S` 发送了文g ${filePath}/${fileName}\n" >
>
$logFile

 
 
 
 
调用Ҏ(gu)为:(x)

JavaShellUtil javaShellUtil = new JavaShellUtil();
//参数执行的Shell命o(h)Q即通过调用Shell脚本sendKondorFile.sh?temp目录下的tmp.pdf文g发送到192.168.1.200?br /> int success = javaShellUtil.executeShell("sh /tmp/sendKondorFile.sh /temp tmp.pdf");


冰河快狼 2009-09-23 10:16 发表评论
]]>
python调用cx_Oracle开?-)---cx_Oracle安装(?http://www.tkk7.com/jelver/articles/294583.html冰河快狼冰河快狼Thu, 10 Sep 2009 06:52:00 GMThttp://www.tkk7.com/jelver/articles/294583.htmlhttp://www.tkk7.com/jelver/comments/294583.htmlhttp://www.tkk7.com/jelver/articles/294583.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/294583.htmlhttp://www.tkk7.com/jelver/services/trackbacks/294583.htmlhttp://blog.csdn.net/LIUYANG007/archive/2007/03/16/1531167.aspx
开始在ubuntu下用python调用oracle,军_使用cx_Oracle.

安装前要定oracle安装成功q能正常使用

在cx_Oracle的网站上http://www.python.net/crew/atuining/cx_Oracle/

有windows和linux 2U安装版?/p>

按照自己的具体配|选择下蝲版本,我是oracle10,python 2.4


下蝲Fedora Core 5 RPM (Oracle 10g, Python 2.4),

cx_Oracle-4.3-10g-py24-1.i386.rpm


先把rpm转换成deb安装

suod alien cx_Oracle-4.3-10g-py24-1.i386.rpm cx_Oracle-4.3-10g-py24-1.i386.deb


再安装deb

sudo dpkg -i cx_Oracle-4.3-10g-py24-1.i386.deb


安装完成后在python里输?/p>

>>> import cx_Oracle

Traceback (most recent call last):

  File "", line 1, in ?

ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory


l过查找发现是oracle的\径没有设|?/p>

输入:

locate libclntsh.so.10.1

获取对于路径

/app/oracle/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1

 


~辑/etc/ld.so.conf

sudo gedit /etc/ld.so.conf


在最后一行输入获取的路径

/app/oracle/oracle/product/10.2.0/db_1/lib/


保存,关闭gedit

执行

ldconfig


再调用就好了

 

本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/LIUYANG007/archive/2007/03/16/1531167.aspx



冰河快狼 2009-09-10 14:52 发表评论
]]>
shell监控服务器aliveq自动发短信报警http://www.tkk7.com/jelver/articles/291534.html冰河快狼冰河快狼Mon, 17 Aug 2009 10:50:00 GMThttp://www.tkk7.com/jelver/articles/291534.htmlhttp://www.tkk7.com/jelver/comments/291534.htmlhttp://www.tkk7.com/jelver/articles/291534.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/291534.htmlhttp://www.tkk7.com/jelver/services/trackbacks/291534.htmlhttp://bbs.linuxtone.org/redirect.php?tid=3325&goto=lastpost
脚本借助?a target="_blank">抚琴煮酒 ?a target="_blank">试局域网内主机是否alive的小脚本
http://bbs.linuxtone.org/thread-2065-1-1.html
新加入了飞信免费发短信API接口Q可以自q自己发短信,完全免费Q?br /> 把ping不同的ip地址写到一?span onclick="tagshow(event)" class="t_tag">文g里面Qƈd断这个文件是否ؓ(f)I来实现报警功能
#!/bin/bash
 cat /dev/null >/usr/local/sbin/51edu.txt
 
for n in {66..75}; do
     host
=192.168.0.$n
     ping 
-c5 $host &>/dev/null
     
if [ $? = 0 ]; then
        echo 
"$host is up" >/dev/null
     
else
        echo 
"$host" >>/usr/local/sbin/51edu.txt
        
if [[ -/usr/local/sbin/51edu.txt ]];then
            DOWN
=`cat /usr/local/sbin/51edu.txt|paste --','`
            curl 
"http://sms.api.bz/fetion.php?username=1501*******&password=******& amp;sendto=1501*******&message=$DOWN服务器down机,请尽快处?"
        fi
      fi
 done

更简z:(x)
#!/bin/bash
#
Checks to see if hosts 192.168.100.1-192.168.100.16 are alive
#
$?输出命o(h)退Z码:(x)0为命令正常执行,1-255为有出错
for n in {1..16}; do
         host
=192.168.100.$n
         ping 
-c2 $host &>/dev/null
         
if [ $? = 0 ]; then
            echo 
"$host is UP"
         
else
            echo 
"$host is DOWN"
            curl 
"http://sms.api.bz/fetion.php?username=135****&password=***&sendto=135***&message=$host服务器down机,请尽快处?"
         fi
done




冰河快狼 2009-08-17 18:50 发表评论
]]>
高语言与shell的交?/title><link>http://www.tkk7.com/jelver/articles/270063.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Mon, 11 May 2009 08:14:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/270063.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/270063.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/270063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/270063.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/270063.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed"> <tbody> <tr> <td> <div id="z9ptnht" class="cnt" id="blog_text"> <p><font color="#ff6600">原文 <a >http://blog.chinaunix.net/u1/42963/showart_709425.html</a></font></p> <p><font color="#003300">׃目需要,最q研I了高语言调用其他一些脚本的Ҏ(gu)Q这里主要介l两个语aQ分别是Java ?C语言?/font></p> <div><font color="#003300"><font face="黑体" size="4"><strong>1.Java调用shell</strong></font><br />    Java语言以其跨^台性和易性而著Uͼ在Java里面的lang包里(java.lang.Runtime)提供了一个允许JavaE序与该E序所q行的环境交互的接口Q这是Runtimec,在Runtimec里提供了获取当前运行环境的接口?其中的exec函数q回一个执行shell命o(h)的子q程。exec函数的具体实现Ş式有以下几种Q?br />    <br /> public Process exec(String command) throws IOException<br /> public Process exec(String command,String[] envp) throws IOException<br /> public Process exec(String command,String[] envp,File dir) throws IOException<br /> public Process exec(String[] cmdarray) throws IOException<br /> public Process exec(String[] cmdarray, String[] envp) throws IOException<br /> public Process exec(String[] cmdarray, String[] envp,File dir) throws IOException</font></div> <div></div> <div><font color="#003300">   我们在这里主要用到的是第一个和W四个函敎ͼ具体Ҏ(gu)很简单,是在exec函数中传递一个代表命令的字符丌Ӏexec函数q回的是一个Processcd的类的实例。ProcesscM要用来控制进E,获取q程信息{作用?具体信息及其用法请参看Java doc)?/font></div> <div></div> <div><font color="#003300"><font size="3"><strong>1Q执行简单的命o(h)的方法:(x)<br /> </strong></font>代码如下Q?br />         try<br />         {<br />             String commands = "ls -l";<br />             Process process = Runtime.getRuntime().exec (commands);</font></div> <div><font color="#003300">            // for showing the info on screen <br />             InputStreamReader ir=new InputStreamReader(process.getInputStream());<br />             BufferedReader input = new BufferedReader (ir);<br />             String line;<br />             while ((line = input.readLine ()) != null){<br />                 System.out.println(line);<br />             }<br />         }//end try<br />         catch (java.io.IOException e){<br />             System.err.println ("IOException " + e.getMessage());<br />         }</font></div> <div><br /> <font color="#003300">上面的代码首先是声明了一个代表命令的字符串commandsQ它代表了ls -l q个命o(h)。之后我们用Runtime.getRuntime().exec(commands)来生成一个子q程来执行这个命令,如果q句话运行成功,?命o(h) ls -l q行成功(׃没有让它昄Q不?x)显Cls -l 的结?。后面的操作则是获取进E的信息,q把它们一行行输出到屏q?/font></div> <div><br /> <font color="#003300"><font size="3"><strong>2Q执行带有参数的命o(h)</strong></font>(其是参数需要用引号?时则需要用String的数l来表示整个命o(h)Q而且要用转义W把引号的特D含义去除,例如我们要执?find / -name "*mysql*" -print Ӟ用如下代?br />         try<br />         {<br />             String[] commands = new String[]{"find",".","-name","*mysql*","-print"};<br />             Process process = Runtime.getRuntime().exec (commands);<br />             InputStreamReader ir=new InputStreamReader(process.getInputStream());<br />             BufferedReader input = new BufferedReader (ir);<br />             String line;<br />             while ((line = input.readLine ()) != null){<br />                 System.out.println(line);<br />             }<br />          }//end try<br />         catch (java.io.IOException e){<br />             System.err.println ("IOException " + e.getMessage());</font></div> <div></div> <div><font color="#003300">3)<font size="3"><strong>执行一个自己写的脚?/strong></font></font></div> <div><font color="#003300">非常单,只需要在构造commands时写出它的详l\径和文g名,及参数等?/font></div> <div><font color="#003300">   <br />    try<br />         {<br />             String commands = "/root/test/checkfile.sh";<br />             Process process = Runtime.getRuntime().exec (commands);<br />             InputStreamReader ir=new InputStreamReader(process.getInputStream());<br />             BufferedReader input = new BufferedReader (ir);<br />             String line;<br />             while ((line = input.readLine ()) != null){<br />                 System.out.println(line);<br />             }<br />          }//end try<br />         catch (java.io.IOException e){<br />             System.err.println ("IOException " + e.getMessage());</font></div> <div></div> <div><font color="#003300"><font size="2">如果命o(h)中有参数Q同2Q要用数l的形式</font>?/font></div> <div></div> <div><font face="黑体" color="#003300" size="4"><strong>2.CE序调用shell</strong></font></div> <div></div> <div><font color="#003300">CE序调用shell脚本共有三种方式Qsystem()、popen()、execpd函数<br /> <br /> <font size="3"><strong>1Qsystem(shell命o(h)或shell脚本路径);</strong></font><br />     <br />    system()?x)调用fork()产生子进E,由子q程来调?bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随卌回原调用的进E。在调用system()期间SIGCHLD 信号?x)被暂时搁置QSIGINT和SIGQUIT 信号则会(x)被忽略?br />     <br />     q回|(x)如果system()在调?bin/sh时失败则q回127Q其他失败原因返?1。若参数string为空指针(NULL)Q则q回非零倹{如?system()调用成功则最后会(x)q回执行shell命o(h)后的q回|但是此返回g有可能ؓ(f)system()调用/bin/shp|所q回?27Q因此最好能再检查errno 来确认执行成功?/font></div> <div></div> <div><font color="#003300">   system命o(h)以其单高效的作用得到很很q泛的应用,下面是一个例?/font></div> <div><br /> <font color="#003300">例:(x)在~/test/目录下有shell脚本test.shQ内容ؓ(f)</font></div> <div><font color="#003300">#!bin/bash<br /> #test.sh<br /> echo hello</font></div> <div></div> <div><font color="#003300">在同层目录下新徏一个c文gsystem_test.cQ内容ؓ(f)Q?/font></div> <div></div> <div><font color="#003300">#include<stdlib.h></font></div> <div><font color="#003300">int main()<br /> {<br /> system("~/test/test.sh");<br /> }</font></div> <div></div> <div><font color="#003300">执行l果如下Q?/font></div> <div></div> <div><font color="#003300">[root@localhost test]$gcc system_test.c -o system_test <br /> [root@localhost test]$./system_test<br /> hello<br /> [root@localhost test]$ </font></div> <div><br /> <font color="#003300"><font size="3"><strong>2Qpopen(char *command,char *type)</strong></font>    </font></div> <div></div> <div><font color="#003300">    popen()?x)调用fork()产生子进E,然后从子q程中调?bin/sh -c来执行参数command的指令。参数type可?#8220;r”代表dQ?#8220;w”代表写入。依照此type|popen()?x)徏立管道连到子q程的标准输备或标准输入讑֤Q然后返回一个文件指针。随后进E便可利用此文g指针来读取子q程的输备或是写入到子进E的标准输入讑֤中。此外,所有用文件指?FILE*)操作的函C都可以用,除了fclose()以外?/font></div> <div></div> <div><font color="#003300">    q回|(x)若成功则q回文g指针Q否则返回NULLQ错误原因存于errno中。注意:(x)在编写具SUID/SGID权限的程序时请尽量避免用popen()Qpopen()?x)承环境变量,通过环境变量可能?x)造成pȝ安全的问题?/font></div> <div></div> <div><font color="#003300">例:(x)CE序popentest.c内容如下Q?/font></div> <div><font color="#003300">    #include<stdio.h><br />     main<br />     {<br />         FILE * fp;<br />         charbuffer[80];<br />         fp=popen(“~/myprogram/test.sh”,”r”);<br />         fgets(buffer,sizeof(buffer),fp);<br />         printf(“%s”,buffer);<br />         pclose(fp);<br />     }</font></div> <div></div> <div></div> <div><font color="#003300">执行l果如下Q?/font></div> <div></div> <div><font color="#003300">[root@localhost test]$ vim popentest.c<br /> [root@localhost test]$ gcc popentest.c -o popentest<br /> [root@localhost test]$ ./popentest<br /> /root/test<br /> [root@localhost test]$ </font></div> <div></div> <div><font color="#003300">对于execpd函数q里׃做具体介l了?/font></div> <div><font color="#003300">希望q些东西对大家有用?br /> </font></div> <div><font color="#003300">本文参考了下面q片文章Q谢q作者?/font></div> <div> <p><a ><font color="#003300">http://www.kainatech.com.cn/frame.php?frameon=yes&referer=http%3A//www.kainatech.com.cn/viewthread.php%3Ftid%3D652</font></a></p> </div> </div> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/jelver/aggbug/270063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2009-05-11 16:14 <a href="http://www.tkk7.com/jelver/articles/270063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux中数据库实现每天自动备䆾数据及自动删?天前备䆾数据http://www.tkk7.com/jelver/articles/267137.html冰河快狼冰河快狼Thu, 23 Apr 2009 06:17:00 GMThttp://www.tkk7.com/jelver/articles/267137.htmlhttp://www.tkk7.com/jelver/comments/267137.htmlhttp://www.tkk7.com/jelver/articles/267137.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/267137.htmlhttp://www.tkk7.com/jelver/services/trackbacks/267137.html
 原帖Q在linux中数据库实现每天自动备䆾数据及自动删?天前备䆾数据(常用)

1数据库每天自动备份数据需?
W一:每天自动备䆾当天的数据库的数据信?/font> ?/font>
W二Q把当天备䆾的数据和日志一h?tar.gz包,q样?x)减硬盘的定w?/font>
W三Q用FTP把当天的数据.tar.gz包上传到外面的服务器做备份?/font>
W四Q每天的数据日益增加Q硬盘的定w有限。所以只保留前五天的数据备䆾Q删除五天前的数据备份?/font>

2
自动备䆾实现步骤Q从数据库服务器1备䆾到服务器2Q?br />
2.1在数据库服务?/font>1~写backup.sh文g
用安装Oracle数据库的用户Q这里的用户为oracleQ在数据库服务器?home/databackup创徏q编写backup.sh文g。该文g先定义Oracle的环境变量,然后导出当天的数据,q创建相关的日志Q然后把当天的数据和日志打包?tar.gz文g?/font>
文g内容Q(#为注释)

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#Oracle的字W集QOracle数据库的中文字符集ؓ(f)AMERICAN_AMERICA.ZHS16GBK

export ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle数据库的根目?/font>
/oracle/product/10.2.0/db_1/bin/exp risenet56/1@ora10g file=risenet56`date +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.log
owner=risenet56

#导出当日的数据库的数据ƈ写日志。如当ؓ(f)2008-1-16Q数据文件ؓ(f)risenet5620080116.dmp,日志为risenet5620080116.log

tar -cf risenet56`date +%Y%m%d`.tar risenet56`date +%Y%m%d`.dmp risenet56`date +%Y%m%d`.log
#把数据文件和日志打包

gzip risenet56`date +%Y%m%d`.tar
#把tar包压~成.tar.gz?/font>

cat risenet56`date +%Y%m%d`.log | mail -s 'risenet56 Web Backup' mengzhaoliang@risesoft.net
#把当天日志发送到mengzhaoliang@risesoft.net邮箱

rm -f risenet56`date +%Y%m%d`.dmp
rm -f risenet56`date +%Y%m%d`.log
#删除备䆾.dmp文g?log日志

mv risenet56`date +%Y%m%d`.tar.gz /home/databackup
#把当前目录的.tar.gz包移动到/home/databackup目录?/font>

rm -f /home/databackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#删除/home/databackup/目录下前W?天的数据

2.2在数据库服务?/font>1创徏FTP服务?/font>autoftp.sh文g
从数据库服务?的当天备份数据用FTP上传到另一服务?。在数据库服务器1?home/databackup的目录下创徏q编写autoftp.sh文g?/font>

文g内容如下Q?/font>

#!/bin/sh
ftp -i -v -n <<!
open ***.***.***.***
#
启动 FTP q接服务?
***.***.***.***为服务器2的ip地址


user risesoft ******
#risesoft
为用户名
******为密?/font>


Binary
#以二q制传输

prompt off
lcd /home/databackup
#在数据库服务?的目?/font>

cd /home/risesoft/67OracleBackup
#在服务器2的目?/font>

mput risenet56`date +%Y%m%d`.tar.gz
#上传数据

close
bye
!
--------------------------------------------------
2.3在数据库服务?/font>1上给两个shell文g赋予权限

用oracle用户lbackup.sh赋予相应的权限,启动一个终端,执行切换用户命o(h)Qsu – oracle Q然后输入用L(fng)密码。执行赋予权限命令:(x)chmod +x /home/databackup/backup.sh
然后再执行命令:(x)chomd +x /home/databackup/autoftp.sh

2.4在数据库服务?/font>1中的crontab来定时执?/font>shell用oracle用户启动一个终端,输入命o(h)q行~写Qcrontab –e
内容如下Q?/font>

30 19 * * * /home/databackup/backup.sh 2>&1
30
22 * * * /home/databackup/autoftp.sh 2>&1

--------------------------------------------------
保存Q可以用命o(h)Qcrontab –l
来查?

上述的作用:(x)每天19:30执行backup.sh文gQ而backup.shq行备䆾当天的数据,q删除前W?天的数据Q则保留?天的数据。每?2Q?0执行autoftp.sh文gQ把当天的备份数据从数据库服务器1上传到另一服务??br />
2.5在服务器2上创建删除前W?/font>6天的 shell文g

每天都从数据库服务器1的备份数据上传到另一服务?上,但服务器2Q上的容量也是有限的Q只保留?天的数据Q每天自动删除前W六天的备䆾数据。因Z传的用户名ؓ(f)risesoft,所以用risesoft用户在服务器2?home/risesoft/67OracleBackup目录下创建ƈ~写delete.sh文g?/font>
内容如下Q?/font>

rm -f /home/risesoft/67OracleBackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#删除前第5天的数据
--------------------------------------------------
2.6在服务器2上给delete.sh文g赋予权限备䆾的数据是用risesoft用户上传上来的,用risesoft用户ldelete.sh赋予相应的权限,启动一个终端,执行切换用户命o(h)Qsu – risesoft
Q然后输入用L(fng)密码。执行赋予权限命令:(x)chmod +x /home/risesoft/67OracleBackup/delete.sh

2.7在服务器2中的crontab定时执行delete.sh文g
用oracle用户启动一个终端,输入命o(h)q行~写Qcrontab –e
内容如下Q?/font>
30
23 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1

--------------------------------------------------
保存Q可以用命o(h)Q?br /> crontab –l
来查?

上述作用Q在每天?3:30自动执行delete.sh文gQdelete.sh文g则自动删除在/home/risesoft/67OracleBackup目录下的前第5天的备䆾数据?/font>


冰河快狼 2009-04-23 14:17 发表评论
]]>
linux下的resin定时重启http://www.tkk7.com/jelver/articles/149647.html冰河快狼冰河快狼Sat, 29 Sep 2007 09:55:00 GMThttp://www.tkk7.com/jelver/articles/149647.htmlhttp://www.tkk7.com/jelver/comments/149647.htmlhttp://www.tkk7.com/jelver/articles/149647.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/149647.htmlhttp://www.tkk7.com/jelver/services/trackbacks/149647.html   #crontab   -e  
  d如下一行:(x)  
  0   8   *   *   *   /usr/local/resin-3.0.12/bin/httpd.sh   restart  
  表示每天凌晨8点自动重启resin  
   
  此时要注意:(x)  
  resin自动重启时是不读入环境变量的Q!Q? 
  因此我们要在resin的启?nobr oncontextmenu="return false;" onmousemove="kwM(0);" id="key0" onmouseover="kwE(event,0, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">文ghttpd.sh中加上环境变量!  
  #vi   httpd.sh  
  注意一定要?!   /bin/sh攑֜文g的第一行,否则无法手动执行httpd.sh文g  
  然后在下面添加如下几行:(x)  
  CLASSPATH=......  
  LANG=......  
  JAVA_HOME=......  
  PATH=......  
  export   CLASSPATH   LANG   JAVA_HOME   PATH  
   
  注意最后一定要export各个变量Q否则无法生? 
  q四个变量的值可以通过q个命o(h)Q? 
  #env  
  来查看当?nobr oncontextmenu="return false;" onmousemove="kwM(2);" id="key2" onmouseover="kwE(event,2, this);" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">机器上的配置Q然后拷贝过d可以? 
   
   
  我的blogQhttp://farmerinchina.blog.sohu.com

冰河快狼 2007-09-29 17:55 发表评论
]]>
(定时d)crontab和cron 的用?/title><link>http://www.tkk7.com/jelver/articles/146295.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Tue, 18 Sep 2007 15:27:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/146295.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/146295.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/146295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/146295.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/146295.html</trackback:ping><description><![CDATA[<p>cron 是一个可以用来根据时间、日期、月份、星期的l合来调度对重复d的执行的守护q程?</p> <p>cron 假定pȝ持箋q行。如果当某Q务被调度时系l不在运行,该Q务就不会(x)被执行?</p> <p>要?cron 服务Q你必须安装?<tt class="FILENAME"><font face="新宋?>vixie-cron</font></tt> RPM 软g包,而且必须在运?<tt class="COMMAND"><font face="新宋?>crond</font></tt> 服务。要判定该Y件包是否已安装,使用 <tt class="COMMAND"><font face="新宋?>rpm -q vixie-cron</font></tt> 命o(h)。要判定该服务是否在q行Q?<tt class="COMMAND"><font face="新宋?>/sbin/service crond status</font></tt> 命o(h)?</p> <div id="xvtxz7r" class="SECT2"> <h2 class="SECT2"><a name="S2-AUTOTASKS-CRON-CONFIGURING"></a>37.1.1. 配置 cron d</h2> <p>cron 的主配置文g?<tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt>Q它包括下面几行Q?</p> <table class="SCREEN" width="100%" bgcolor="#dcdcdc"> <tbody> <tr> <td> <pre class="SCREEN"><tt class="COMPUTEROUTPUT">SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly</tt></pre> </td> </tr> </tbody> </table> <p>前四行是用来配置 cron dq行环境的变量?tt class="COMPUTEROUTPUT"><font face="新宋?>SHELL</font></tt> 变量的值告诉系l要使用哪个 shell 环境Q在q个例子里是 bash shellQ;<tt class="COMPUTEROUTPUT"><font face="新宋?>PATH</font></tt> 变量定义用来执行命o(h)的\径。cron d的输邮寄l?<tt class="COMPUTEROUTPUT"><font face="新宋?>MAILTO</font></tt> 变量定义的用户名。如?<tt class="COMPUTEROUTPUT"><font face="新宋?>MAILTO</font></tt> 变量被定义ؓ(f)I白字符Ԍ<tt class="COMPUTEROUTPUT"><font face="新宋?>MAILTO=""</font></tt>Q,?sh)子邮g׃?x)被寄出?tt class="COMPUTEROUTPUT"><font face="新宋?>HOME</font></tt> 变量可以用来讄在执行命令或脚本时用的ȝ录?</p> </div> <div class="rxl7n99" id="a001178more"> <div class="5lxrpbn" id="more"> <p><tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt> 文g中的每一行都代表一Q务,它的格式是:(x) </p> <table class="SCREEN" width="100%" bgcolor="#dcdcdc"> <tbody> <tr> <td> <pre class="SCREEN"><tt class="COMPUTEROUTPUT">minute hour day month dayofweek command</tt></pre> </td> </tr> </tbody> </table> <p> </p> <ul> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>minute</font></tt> ?分钟Q从 0 ?59 之间的Q何整?/p> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>hour</font></tt> ?时Q从 0 ?23 之间的Q何整?/p> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>day</font></tt> ?日期Q从 1 ?31 之间的Q何整敎ͼ如果指定了月份,必须是该月䆾的有效日期)</p> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>month</font></tt> ?月䆾Q从 1 ?12 之间的Q何整敎ͼ或用月份的英文写如 jan、feb {等Q?/p> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>dayofweek</font></tt> ?星期Q从 0 ?7 之间的Q何整敎ͼq里?0 ?7 代表星期日(或用星期的英文写如 sun、mon {等Q?/p> <li> <p><tt class="COMPUTEROUTPUT"><font face="新宋?>command</font></tt> ?要执行的命o(h)Q命令可以是 <tt class="COMMAND"><font face="新宋?>ls /proc >> /tmp/proc</font></tt> 之类的命令,也可以是执行你自行编写的脚本的命令。)</p> </li> </ul> <p>在以上Q何gQ星P*Q可以用来代表所有有效的倹{譬如,月䆾g的星h味着在满_它制U条件后每月都执行该命o(h)?</p> <p>整数间的短线Q?Q指定一个整数范围。譬如,<tt class="USERINPUT"><strong><font face="新宋?>1-4</font></strong></tt> 意味着整数 1????</p> <p>用逗号Q?Q隔开的一pd值指定一个列表。譬如,<tt class="USERINPUT"><strong><font face="新宋?>3, 4, 6, 8</font></strong></tt> 标明q四个指定的整数?</p> <p>正斜U(/Q可以用来指定间隔频率。在范围后加?<tt class="USERINPUT"><strong><font face="新宋?>/<<tt class="REPLACEABLE"><em>integer</em></tt>></font></strong></tt> 意味着在范围内可以跌 integer。譬如,<tt class="USERINPUT"><strong><font face="新宋?>0-59/2</font></strong></tt> 可以用来在分钟字D定义每两分钟。间隔频率D可以和星号一起用。例如,<tt class="USERINPUT"><strong><font face="新宋?>*/3</font></strong></tt> 的值可以用在月份字D中表示每三个月q行一ơQ务?</p> <p>开头ؓ(f)井号Q?Q的行是注释Q不?x)被处理?</p> <p>如你?<tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt> 文g中所见,它?<tt class="COMMAND"><font face="新宋?>run-parts</font></tt> 脚本来执?<tt class="FILENAME"><font face="新宋?>/etc/cron.hourly</font></tt>?tt class="FILENAME"><font face="新宋?>/etc/cron.daily</font></tt>?tt class="FILENAME"><font face="新宋?>/etc/cron.weekly</font></tt> ?<tt class="FILENAME"><font face="新宋?>/etc/cron.monthly</font></tt> 目录中的脚本Q这些脚本被相应地每时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本?</p> <p>如果?cron d需要根据调度来执行Q而不是每时、每日、每周、或每月地执行,它可以被d?<tt class="FILENAME"><font face="新宋?>/etc/cron.d</font></tt> 目录中。该目录中的所有文件用和 <tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt> 中一L(fng)语法?</p> <div id="drvppxf" class="EXAMPLE"><a name="CRONTAB-EXAMPLES"></a> <table class="SCREEN" width="100%" bgcolor="#dcdcdc"> <tbody> <tr> <td> <pre class="SCREEN"><tt class="COMPUTEROUTPUT"># record the memory usage of the system every monday # at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo # run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh</tt></pre> </td> </tr> </tbody> </table> <p><strong>?37-1. crontab 的例?/strong></p> </div> <p>根用户以外的用户可以使用 <tt class="COMMAND"><font face="新宋?>crontab</font></tt> 工具来配|?cron d。所有用户定义的 crontab 都被保存?<tt class="FILENAME"><font face="新宋?>/var/spool/cron</font></tt> 目录中,q用创建它们的用户w䆾来执行。要以某用户w䆾创徏一?crontab 目Q登录ؓ(f)该用P然后键入 <tt class="COMMAND"><font face="新宋?>crontab -e</font></tt> 命o(h)Q用由 <tt class="COMPUTEROUTPUT"><font face="新宋?>VISUAL</font></tt> ?<tt class="COMPUTEROUTPUT"><font face="新宋?>EDITOR</font></tt> 环境变量指定的编辑器来编辑该用户?crontab。该文g使用的格式和 <tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt> 相同。当?crontab 所做的改变被保存后Q该 crontab 文g׃(x)Ҏ(gu)该用户名被保存,q写入文?<tt class="FILENAME"><font face="新宋?>/var/spool/cron/<tt class="REPLACEABLE"><em>username</em></tt></font></tt> 中?</p> <p>cron 守护q程每分钟都?<tt class="FILENAME"><font face="新宋?>/etc/crontab</font></tt> 文g?tt class="FILENAME"><font face="新宋?>etc/cron.d/</font></tt> 目录、以?<tt class="FILENAME"><font face="新宋?>/var/spool/cron</font></tt> 目录中的改变。如果发C改变Q它们就?x)被载入内存。这P当某?crontab 文g改变后就不必重新启动守护q程了?</p> <div id="nhjtlbj" class="SECT2"> <h2 class="SECT2"><a name="S2-AUTOTASKS-CRON-ACCESS"></a>37.1.2. 控制?cron 的?/h2> <p><tt class="FILENAME"><font face="新宋?>/etc/cron.allow</font></tt> ?<tt class="FILENAME"><font face="新宋?>/etc/cron.deny</font></tt> 文g被用来限制对 cron 的用。这两个使用控制文g的格式都是每行一个用戗两个文仉不允许空根{如果用控制文件被修改了,cron 守护q程Q?tt class="COMMAND"><font face="新宋?>crond</font></tt>Q不必被重启。用控制文件在每次用户d或删除一?cron d旉?x)被d?</p> <p>无论使用控制文g中的规定如何Q根用户都L可以使用 cron?</p> <p>如果 <tt class="FILENAME"><font face="新宋?>cron.allow</font></tt> 文g存在Q只有其中列出的用户才被允许使用 cronQƈ?<tt class="FILENAME"><font face="新宋?>cron.deny</font></tt> 文g?x)被忽略?</p> <p>如果 <tt class="FILENAME"><font face="新宋?>cron.allow</font></tt> 文g不存在,所有在 <tt class="FILENAME"><font face="新宋?>cron.deny</font></tt> 中列出的用户都被止使用 cron?</p> </div> <div id="r9xpfzz" class="SECT2"> <h2 class="SECT2"><a name="S2-AUTOTASKS-CRON-SERVICE"></a>37.1.3. 启动和停止服?/h2> <p>要启?cron 服务Q?<tt class="COMMAND"><font face="新宋?>/sbin/service crond start</font></tt> 命o(h)。要停止该服务,使用 <tt class="COMMAND"><font face="新宋?>/sbin/service crond stop</font></tt> 命o(h)。推荐你在引导时启动该服?/p> <br /> <br /> <div id="d1hzrjj" class="mtitle">(定时d)crontab 的用?/div> <div> <p>crontab task 格式 </p> <p>* * * * * task<br /> ?????task</p> <p>W??分钟1? 9  (0表示0?<br /> W??时1? 3Q?表示子夜Q?br /> W???? 1    <br /> W???? 2   <br /> W??星期0?Q?表示星期天)<br /> W??要运行的命o(h)</p> <p>一些例?<br /> 30 21* * * /apps/bin/cleanup.sh<br /> 上面的例子表C每晚的2 1 : 3 0q行/ a p p s / b i n目录下的c l e a n u p . s h?br /> 45 4 1,10,22 * * /apps/bin/backup.sh<br /> 上面的例子表C每?? 0? 2日的4 : 4 5q行/ a p p s / b i n目录下的b a c k u p . s h?br /> 10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;<br /> 上面的例子表C每周六、周日的1 : 1 0q行一个f i n d命o(h)?br /> 0,30 18-23 * * * /apps/bin/dbcheck.sh<br /> 上面的例子表C在每天1 8 : 0 0? 3 : 0 0之间每隔3 0分钟q行/ a p p s / b i n目录下的d b c h e c k . s h?br /> 0 23 * * 6 /apps/bin/qtrend.sh<br /> 上面的例子表C每星期六的11 : 0 0 p mq行/ a p p s / b i n目录下的q t r e n d . s h</p> <p>实现定时task的两U方?br /> 一U是~辑一个文?用crontab 载入<br /> 一U是用crontab -e 直接~辑生效</p> <p>我自׃个例?/p> <p>每隔以一分钟往一个文件打入一堆字W?br /> 先vi crontab1<br /> #every minute echo char to file<br /> 1-59 * * * * echo `date`" lj\n" >> /opt/lijie/lj.txt<br /> 最好加上注?br /> q样p明确当前的这个定时Q务的目的<br /> 然后 crontab crontab1载入crontab1q个定时d</p> <p> </p> <p>另外一U是<br /> crontab -e<br /> #every minute echo char to file<br /> 1-59 * * * * echo `date`" lj\n" >> /opt/lijie/lj.txt</p> <p>date 用单引号,是表C如果date是一个命?׃为命令执?br /> 如果你直接用date ,那么输出的是"date"q个字符?而不是dateq个命o(h)的执行结?/p> <p>>> 是附加到文g末尾,?gt;是直接覆盖文?/p> <p>如果crontab -e无法~辑<br /> 那么是你的环境变量没有配|?br /> 请你q入 vi /etc/profile<br /> 加上<br /> EDITOR=vi<br /> export EDITOR</p> crontab -l 列出所有定时Q? <p>如果要删除一个定时Q?br /> 那么<br /> crontab -e<br /> 注释掉对应定时Q务语?br /> 例如要删除我刚刚定义的那个定时Q?br /> #every minute echo char to file<br />  1-59 * * * * echo `date`" lj\n" >> /opt/lijie/lj.txt<br /> 只需?br /> #every minute echo char to file<br /> #1-59 * * * * echo `date`" lj\n" >> /opt/lijie/lj.txt</p> <p>如果用crontab -r<br /> 删除拉所有的定时d<br /> </p> <p><font color="#ff0000">特别注意:<br /> 1, 如果用crontab 文g来蝲入定时Q?会(x)冲掉定时d<br /> 所以如果要新增定时d,最好就用crontab -e来新增定时Q?br /> 不要用crontab 文g?/font></p> <p><font color="#ff0000">2, crontab的日志文件ؓ(f) /var/log/cron</font></p> <p><font color="#ff0000">3, 如果使用 crontab <filename> 来设|cronQ一定要注意文gq的问题。我qC个问题,/var/log/cron 日志里面昄 Dec 28 11:34:00 TARGET CROND[13449]: (hnuc) CMD (/home/hnuc/shell/t.sh^M) 后面的~M是ؕ码,原因是:(x)我是使用editplus~辑的cron fileQ里面的回R换行W号是dos的而不是linux或者unix的。这里的^M 实际上是个dos的换行符Q在linux环境下解析成q个了?/font></p> </div> </div> </div> </div> <img src ="http://www.tkk7.com/jelver/aggbug/146295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2007-09-18 23:27 <a href="http://www.tkk7.com/jelver/articles/146295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VM中Linux虚拟Z安装VMware Tools Q{Q?/title><link>http://www.tkk7.com/jelver/articles/108103.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Tue, 03 Apr 2007 00:37:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/108103.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/108103.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/108103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/108103.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/108103.html</trackback:ping><description><![CDATA[<p>VM中Linux虚拟Z安装VMware Tools<br>     使用VMware 来安装Linux ,都会(x)被那个VMware-Tools弄得晕头转向。现在详l向大家介绍如何安装Linux下的VMwareTools.<br>1.安装工具。让虚拟行于H口状态,不要全屏Q按Ctrl+Alt让鼠标释攑և来。在VMware的菜单栏上选择"虚拟?安装虚拟机工?VM/Install VMware Tools...)"。然后切换到客户操作pȝQ即Linux?<br>2.挂蝲光盘。mount /dev/cdrom /mnt/cdrom<br>3.执行命o(h)。进入虚拟光盘,可以看到有两个文Ӟ一个是压羃包,一个ؓ(f)rpm包。直接运行rpm包安装,命o(h)行也可。rpm -Uvh VMwareTools-版本?版本?i386.rpm<br>4.上述操作完成后,q入/usr/bin目录Q查找vmware-config-tools.pl.扑ֈ后,q行它?br>5.一路YESQ直到让我们安装C~译器的时候选择NO好?br>6.完成配置。如果一切顺利,即会(x)出现一个界面,让你选择当前屏幕的分辨率Q当然我的kernel应ؓ(f)升C最新的版本Q会(x)有一些消息要你确认,应该直接认可以。选择一个分辨率。重新启动,卛_?br> <br>若不重新启动不要忘记卸蝲CDROM?<br> <br> </p> <p>VMware Workstation 从Y盘和/?CD-ROM 直接安装未修改的操作pȝ。在构造一台虚拟机Ӟq个安装q程是第一步ƈ且也是唯一必需的一步?br>但是QVMware 强烈你在每一台虚拟机中完成操作系l安装之后立卛_?VMware Tools 套g。在客户操作pȝ中安?VMware Tools 非常重要。如果你不安?VMware ToolsQ虚拟机中的囑Ş环境被限制ؓ(f) VGA 模式囑Ş(640x480Q?6 ??br>使用 VMware ToolsQSVGA 驱动E序被安装,VMware Workstation 支持最?32 位显C和高显C分辨率Q显著提升M的图形性能?<br>工具包中的其他工具通过支持下面的增强,让你更方便地使用你的虚拟机。注意,只有正在q行 VMware Tools Ӟq些增强才可用?br>在主机和客户Z间时间同?<br>注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?<br>自动捕获和释N标光?<br>在主机和客户Z间或者从一台虚拟机到另一台虚拟机q行复制和粘贴操?<br>改善的网l性能 <br>VMware Tools 工具包由两个lgl成: <br>一个ؓ(f) VMware Workstation 虚拟囑Ş卡优化的囑Ş驱动E序。对?Linux 客户操作pȝQ它包含我们自己?XFree86 X server 版本。图形驱动程序由向导安装。安装之后,需要在重启动之后才可以使用?<br>一个小的后台应用程序,允许你在虚拟Z更改配置讄。VMware Workstation 控制光标讄和可Ud讑֤的连接状态,例如软盘?CD-ROM 驱动器?br>光标讄允许你在虚拟机和L囑Ş用户界面之间qxUd鼠标光标。光标设|也允许你在虚拟机和L之间以及从一台虚拟机到另一台虚拟机复制和粘贴文本缓存。注意,只有当应用程序正在运行时Q这些增强才可用?br>讄 VMware Tools 参数<br>在一?Windows 客户操作pȝ中ؓ(f) VMware Tools 讄参数<br>打开 VMware Tools。双ȝl托盘中?VMware Tools 图标?<br>VMware Tools 选项卡包含有兌拟机的状态信息。单击链接按钮访?VMware 主页?<br>讑֤选项卡允怽启用或禁用可Ud讑֤?你也可以?VMware Workstation 应用E序H口的设备菜单中讄q些选项? <br>压羃选项?允许你从你的虚拟盘中删除未使用的磁盘块Q从而减?压羃)p拟磁盘消耗的存储I间的数量。它也会(x)重新安排你的虚拟盘Q以使它的数据块怺L?<br>其他选项卡显C其他选项: <br>在虚拟机和主机操作系l之间时间同步?<br>注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?<br>在工h中显C?VMware Tools?<br>在一?Linux 客户操作pȝ中ؓ(f) VMware Tools 讄参数<br>打开 VMware Tools。在一个终端中q行下列命o(h): <br>vmware-toolbox. <br>讑֤选项卡允怽启用或禁用可Ud讑֤?你也可以?VMware Workstation 应用E序H口的设备菜单中讄q些选项? <br>压羃选项?允许你从你的虚拟盘中删除未使用的磁盘块Q从而减?压羃)p拟磁盘消耗的存储I间的数量。它也会(x)重新安排你的虚拟盘Q以使它的数据块怺L?<br>“选项”选项卡显C些选项: <br>在虚拟机和主机操作系l之间时间同步。你可以在虚拟机和主机操作系l之间同步时间?<br>注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?<br>如果正在q行 VMware ToolsQ你可以在虚拟机和主机的应用E序之间或者在两台虚拟Z间复制和_脓(chung)文本?br>要进行复制和_脓(chung):<br>保在你的虚拟机中已l安装ƈ且启?VMware Tools?<br>使用来源H口中的操作pȝ支持的方式在来源H口中选择要复制的目?<br>更改光标和键盘控制到目标H口Q然后用目标窗口中的操作系l支持的方式_脓(chung)目?<br>你只能复制和_脓(chung)文本Q而不是图片或者其他项目?/p> <img src ="http://www.tkk7.com/jelver/aggbug/108103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2007-04-03 08:37 <a href="http://www.tkk7.com/jelver/articles/108103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Linux (EL4)下卸载虚拟机的VMwareToolshttp://www.tkk7.com/jelver/articles/108099.html冰河快狼冰河快狼Tue, 03 Apr 2007 00:32:00 GMThttp://www.tkk7.com/jelver/articles/108099.htmlhttp://www.tkk7.com/jelver/comments/108099.htmlhttp://www.tkk7.com/jelver/articles/108099.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/108099.htmlhttp://www.tkk7.com/jelver/services/trackbacks/108099.html
前两天安装Linux下的VMwareTools,想修改分辨率?024*768Q谁知道没有成功
最后连囑Ş界面都进不了了,只好卸蝲掉,以tar包安装后的目录下有一个卸载文?br>在安装目?bin/下有一个uninstall文gQ执行该文gok了,如果以rmp方式的安?br>则用常规的卸载方式就可以?/p>

冰河快狼 2007-04-03 08:32 发表评论
]]>
Python培训技?/title><link>http://www.tkk7.com/jelver/articles/99223.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Sun, 11 Feb 2007 02:39:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/99223.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/99223.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/99223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/99223.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/99223.html</trackback:ping><description><![CDATA[ <a >http://czug.org/blog/eishn/python-jishupeixun-disanzhoujiangyi</a> <br /> <div id="n3l9r7t" class="documentDescription description">单的|络通信及即时聊?/div> <p>  今天是网l编E。不妨做一个即时聊天工具吧, 不过q次的程序很? 只能说是一个网l对讲机|了?br />  今天我不准备去讲更底层的东西, 比如使用 Socket 来编写通信E序。不q以? 可能是下次我们׃(x)涉及到?br />  然? 今天的东西相当有用。在没有必要ȝ角尖的时?(q是大多数的情况), 今天所用到的方法几乎是W一选择。?XMLRPC 来进行网l编E? 实出奇的简单。但是请注意, 千万不要被现在国内的风气l误g, 其实使用单的工具来进行编Eƈ不愚? 相反是你聪明的表现。而且, 复杂的应用通常是用最单的Ҏ(gu)建立? 如果妄图使用矛_时代的工h建造高楼大? 那几乎是不可能的?br />  下面先来个服务器?br /><br /></p> <blockquote>  <b>from</b> SimpleXMLRPCServer <b>import</b> SimpleXMLRPCServer<br /><br />  <b>def</b> foo():<br />    <b>return</b> "Hello world!"<br /><br />  server = SimpleXMLRPCServer( ("localhost", 8000) )<br />  server.register_function(foo)<br />  server.serve_forever()<br /></blockquote> <p> <br />  ?IE 来访?http://localhost:8000 看看我们得到了什? 是一个出错页? 不错, q表C我们的服务器工作正? 只是讉K的方法不对而已?br />  下面, l出q个E序的客hE序?br /><br /></p> <blockquote>  <b>from</b> xmlrpclib <b>import</b> ServerProxy<br />  server = ServerProxy("http://localhost:8000")<br />  <b>print</b> server.foo()<br /></blockquote> <p> <br />  我们?x)看到服务器q回?"Hello world!"。这?localhost 是指本机, 8000 是端? 我们通常?x)指定大?1024 的端口号。localhost 我们通常?x)用域?(机器? ?IP 来代? 而端口号是Q意的?br />  下面, 该传些东西了。比如发送一句话到服务器上去昄出来?br /><br /></p> <blockquote>  <b>from</b> SimpleXMLRPCServer <b>import</b> SimpleXMLRPCServer<br /><br />  <b>def</b> msg(s):<br />    <b>print</b> s<br />    <b>return</b> True<br /><br />  server = SimpleXMLRPCServer( ("localhost", 8000) )<br />  server.register_function(msg)<br />  server.serve_forever()<br /></blockquote> <p> <br />  对应的客hE序?br /><br /></p> <blockquote>  <b>from</b> xmlrpclib <b>import</b> ServerProxy<br />  server = ServerProxy("http://localhost:8000")<br /><br />  <b>while</b> True:<br />    msg = raw_input()<br />    server.msg(msg)<br /></blockquote> <p> <br />  开个玩W? 一个即旉信工具已经写好了。两台机器互相知?IP 或者机器名, 协商好端口号。然后打开一个服务器、将客户机指向对方的服务器就可以了?br />  那么怎么客L(fng)和服务器合ƈ在一起呢? 因ؓ(f)调用 serve_forever() 之后E序停在那里了, 所以无法再接收用户输入的东西了。这里顺便讲一下多U程~程, 但是q个话题不在本次主题之内, 大家仅做理解可以了?br /><br /></p> <blockquote>  <b>import</b> thread<br />  <b>from</b> SimpleXMLRPCServer <b>import</b> SimpleXMLRPCServer<br />  <b>from</b> xmlrpclib <b>import</b> ServerProxy<br /><br />  <b>def</b> msg(s):<br />    <b>print</b> s<br />    <b>return</b> True<br /><br />  <b>def</b> run_server():<br />    my_server = SimpleXMLRPCServer( ("localhost", 8001) )<br />    my_server.register_function(msg)<br />    my_server.serve_forever()<br /><br />  <b>def</b> run_client():<br />    your_server = ServerProxy("http://localhost:8002")<br />    while True:<br />      msg = raw_input()<br />      your_server.msg(msg)<br /><br />  thread.start_new_thread( run_server, () )<br />  run_client()<br /></blockquote> <p> <br />  W二个差不多, 只是把互相的地址换了一下而已?br /><br /></p> <blockquote>  <b>import</b> thread<br />  <b>from</b> SimpleXMLRPCServer <b>import</b> SimpleXMLRPCServer<br />  <b>from</b> xmlrpclib <b>import</b> ServerProxy<br /><br />  <b>def</b> msg(s):<br />    <b>print</b> s<br />    <b>return</b> True<br /><br />  <b>def</b> run_server():<br />    my_server = SimpleXMLRPCServer( ("localhost", 8002) )<br />    my_server.register_function(msg)<br />    my_server.serve_forever()<br /><br />  <b>def</b> run_client():<br />    your_server = ServerProxy("http://localhost:8001")<br />    <b>while</b> True:<br />      msg = raw_input()<br />      your_server.msg(msg)<br /><br />  thread.start_new_thread( run_server, () )<br />  run_client()<br /></blockquote> <p> <br />  q样, 一对对讲机写好了?br />  接下来就要用到我上一ơ讲到的囑Ş界面的知? ?Tkinter 来写一个界面了?br />  首先把窗体画出来?br /><br /></p> <blockquote>  <b>from</b> Tkinter <b>import</b> *<br />  wnd = Tk()<br />  wnd.lab = Label(wnd, text="---")<br />  wnd.ent = Entry(wnd)<br />  wnd.btn = Button(wnd, text="send")<br />  wnd.lab.pack()<br />  wnd.ent.pack(side=LEFT)<br />  wnd.btn.pack(side=LEFT)<br /></blockquote> <p> <br />  然后把刚才的|络部分加上厅R?br /><br /></p> <blockquote>  <b>import</b> thread<br />  <b>from</b> SimpleXMLRPCServer <b>import</b> SimpleXMLRPCServer<br />  <b>from</b> xmlrpclib <b>import</b> ServerProxy<br /><br /><i>  # W一个对讲机</i><br />  my_server   = SimpleXMLRPCServer( ("localhost", 8002) )<br />  your_server = ServerProxy("http://localhost:8001")<br /><br /><i>  # W二个对讲机 (需要交换一下地址)<br />  # my_server   = SimpleXMLRPCServer( ("localhost", 8001) )<br />  # your_server = ServerProxy("http://localhost:8002")</i><br /><br />  <b>def</b> msg(s):<br />    wnd.lab.config(text=s)<br />    <b>return</b> True<br /><br />  <b>def</b> run_server():<br />    my_server.register_function(msg)<br />    my_server.serve_forever()<br /><br />  <b>def</b> send():<br />    msg = wnd.ent.get()<br />    wnd.ent.select_range(0, len(msg))<br />    your_server.msg(msg)  <br /><br />  wnd.btn.config(command=send)<br /><br />  thread.start_new_thread( run_server, () )<br />  wnd.mainloop()<br /></blockquote> <p> <br />  因ؓ(f)E序比较? 所以另外一个终端就不写了。注? q里两台l端的地址是在E序中写ȝ。而且现在的程序只能显C最q收到的一条消息?br />  ·我们可以使用 Tkinter 中的输入框来叫用戯p入目标机器的地址和端口?br />  ·我们可以使用 Tkinter 中的~辑框组件来昄多行消息?br />  q个作ؓ(f)q次的作业。我的意思是完善q个聊天E序, 做成比较漂亮的样子。同时思考一下如何来实现一个多天室?br />  下周可能?x)涉及?Socket, 请预?fn)一下?br /></p> <br /> <img src ="http://www.tkk7.com/jelver/aggbug/99223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2007-02-11 10:39 <a href="http://www.tkk7.com/jelver/articles/99223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux必学?0个命?http://www.tkk7.com/jelver/articles/72777.html冰河快狼冰河快狼Fri, 29 Sep 2006 05:01:00 GMThttp://www.tkk7.com/jelver/articles/72777.htmlhttp://www.tkk7.com/jelver/comments/72777.htmlhttp://www.tkk7.com/jelver/articles/72777.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/72777.htmlhttp://www.tkk7.com/jelver/services/trackbacks/72777.html 收藏QLinux必学?0个命?/span>
关键?       

q篇文章写得很好Q介l了LINUX下常用的六类命o(h)Q在|上qؓ(f)传Q本x藏到我的味书签Q可在GOOGLE上找了半天,也不见一个带目录的版本,q里仅徏立这文章的链接Q以侉K时查阅?
另:(x)在GOOGLE上搜索后发现Q这文章被很多{载,有的注明了{载字P但未说明出处Q有的根本未注明转蝲字样QL?dng)R是原作?]Q有的则文章改了标题,各种花样Q不一而Q见网民的版权意识之E薄?/p>

Linux必学?0个命?1)-安装与登?/a>
安装和登录命令:(x)login、shutdown、halt、reboot、install、mount、umount、chsh、exit、lastQ?/p>

Linux必学?0个命?2)-文g处理
文g处理命o(h)Qfile、mkdir、grep、dd、find、mv、ls、diff、cat、lnQ?/p>

Linux必学?0个命?3)-pȝ理
pȝ理相关命o(h)Qdf、top、free、quota、at、lp、adduser、groupadd、kill、crontabQ?/p>

Linux必学?0个命?4)-|络操作
|络操作命o(h)Qifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail?nslookupQ?/p>

Linux必学?0个命?5)-pȝ安全
pȝ安全相关命o(h)Qpasswd、su、umask、chgrp、chmod、chown、chattr、sudo ps、whoQ?/p>

Linux必学?0个命?6)-其它
其它命o(h)Qtar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode?/p>



冰河快狼 2006-09-29 13:01 发表评论
]]>
linux常用命o(h)及技?/title><link>http://www.tkk7.com/jelver/articles/72431.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Thu, 28 Sep 2006 00:14:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/72431.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/72431.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/72431.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/72431.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/72431.html</trackback:ping><description><![CDATA[ <font color="#000099"> <p>打包压羃</p> <p>tar -zcfv filename.tar.gz ./</p> <p>服务器解压羃</p> <p>tar -zxfv filename.tar.gz</p> <p>删除</p> <p>rm -rf file</p> <p> <strong> <font size="4"> </font> </strong> </p> <p> </p> <p> 1. SHUTDOWN 关闭pȝ, 参数(-k 不真正关闭系l只是警?-r 关闭后重新引?-h 关闭后终?,-f  快速重新引?-n 不通过init 直接关闭,-c 取消shutdown,-t旉<br />2. 制作引导?# redv zlmage<br />           #fdformat /dev/fd0H1440<br />           #dd if=zlmage of=/dev/fd0<br />3. badblocks 查找坏的?br />4. dump 备䆾文g<br />5. dumpe2fs 打印文gpȝ的信?br />6. tar 解压~?tar xf name.tar<br />            tar zxf name.tar.gz<br />            tar zxf name.tar.z<br />7. ps 查看q程<br />8. cat 查看文g内容<br />9. ls 文g列表<br />10.cd q入目录<br />11.cp 拯<br />12.rpm 安装rpm软g?br />13.mkdir 创徏目录<br />14.startx q入x-windows<br />15. mount 坝设备安装到文gpȝ mount  /dev/ /fd1 –t vfat /mnt/floppy<br />16.umount <br />17.logout 重新d<br />18. vmstat 查看cpu使用情况 vmstat interval [count]<br />19.renice 改变q行的进E的优先U?br />20.su 切换用户<br />21. who 查看用户<br />22.passwd 改变口o(h)<br />23.pwd 当前目录<br />24.rmdir 删除目录,目录为空<br />25.rm 删除目录<br />26.more 同cat 一屏一屏滚?br />27 .wc 查看文g的信?br />28.df 盘I间<br />29.free 内存I间<br />30.man 查看命o(h)的具体用?br />31.adduser d用户<br />32.groupadd d用户l?br />33.chmod 文g权限命o(h)<br />34.& 用于程序调入后台运?updatedb &<br />35。pstree 昄q程?br />36.ifconfig 用于昄讑֮|络接口<br />37。netconfig 提供了网l的集成设?br />38。netstat 查网l连接的状态,路由表和其他信息<br />39。ping 同dos的ping<br />40。mkfs 创徏文gpȝ 如格式化软盘成ext2 mkfs Qt ext2 /mnt/floppy<br />41.fsck 查修复文件系l?br />42。pwd昄当前路径<br />43。tree 昄?wi)状目?br />44。which 昄指o(h)完整路径<br />45Qmv 用于Ud文g和重命名文g<br />46。more 用于分页昄<br />47。find查找文gQ功能强?br />48Qdu 查看盘使用情况<br />49 。env昄所有环境变?br />50。route 用于昄Q设定,删除|络接口上的路由</p> <p> <br /> <br />1.虚拟控制?/p> </font> <br />  d后按Alt+F2键这时又可以看到”login:”提C符, q个是W二个虚拟控制台.再按Alt+F1又回到第一 <br />个控制台Q来回切换很方便。查?etc/inittab文g可以扑ֈ一下几行:(x) <br />      #Run gettys in standard runlevels <br />      1:12345:respawn:/sbin/mingetty tty1 <br />      2:2345:respawn:/sbin/mingetty tty2 <br />      3:2345:respawn:/sbin/mingetty tty3 <br />      4:2345:respawn:/sbin/mingetty tty4 <br />      5:2345:respawn:/sbin/mingetty tty5 <br />      6:2345:respawn:/sbin/mingetty tty6 <br />  也就是说初始化的时候定义了6个虚拟控制台Q你可以~辑q个文g来增加或减少虚拟控制台。在Xwin?<br />使用虚拟控制台则要用Ctrl+Alt+F?来切换。Xwindow占用虚拟控制台后的第一个控制台Q缺省就是tty7,所 <br />以要切换回Xwin则按Alt+F7(当你改变了虚拟控制台的数目时则要改变)。如果启动了W二个Xserver则应?<br />是Alt+F8,{等?<p><font color="#000099">2.Redhat下显C彩色目录及文g列表</font><br />  用ls –color -FQ参数–color指示用彩色显C,参数-F?x)在文g/目录名后加一个字W来指示它的cd?<br />初学者用man ls看看详细信息。比如用-l参数列出文g/目录的绝大部分信?长格式显C?Q用-a参数 <br />列出所有文Ӟ包括首字Wؓ(f)?”的隐含文gQ用-N参数不处理文件名直接昄Q这样在中文环境下就可以 <br />昄中文文g名了。还要注意ls与其它命令搭配用可以生出很多技?最单的如”ls -l | more??<br />  Z方便赯Q你可以~辑/etc/bashrc或自己家目录(home)下的.bashrc,加入一行:(x) <br />     alias ls=”ls –color -F -N?<br />  重新q行一下bash?x)立即生效,如果加?etc/bashrc里则Ҏ(gu)有用bash shell的用h效。如果?<br />的是其它的shell,则去扑֯应的配置文g。注意不?etc/aliases文gQ那是sendmail的别名配|文件?<br />  ls昄的颜色是可以修改的,请参考”Colours with Linux terminals”,里面有个shell脚本可以昄所 <br />有的ANSI颜色。你可以ȝ一?etc/DIR_COLORS?HOME/.dir_colorsQ要注意两个文g的作用范围不同?<br />也可以用dircolors -p命o(h)列出讄Q更详细信息见”man dircolors”?</p><p><font color="#000099">3.只列子目录的Ҏ(gu)Q?/font><br />  ls -F | grep /$ 或?alias sub = “ls -F | grep /$?linux) <br />  ls -l  | grep “^d?或?ls -lL | grep “^d?(Solaris) <br />  find . -type d <br />  find . -type d | sort <br />  参?a >dtree</a></p><p><font color="#000099">4.列出除了某些cd文g的当前目录所有文?/font><br />  使用Ksh,用ls !(*.Z)可以昄所有文Ӟ除了*.Z文g?<br />  q个命o(h)在一个目录里有许多种cd的文件的时候很有用. </p><p><font color="#000099">5.计算文g数和目录?/font><br />  下面的语句可以帮你计有多少个文件和多少个目?. <br />  ls -l * | grep “^-?| wc -l   <? to count files <br />  ls -l *  | grep “^d?| wc -l  <—?to count dir <br />  q可以将以上的语句变成script或做个alias </p><p><font color="#000099">6.复制子目录及子目录下的所有文?/font><br />  在用cp时加?r参数Q如”cp -r /mnt/floppy/* /usr/local/?<br />  要参考的重要参数?f -s </p><p><font color="#000099">7.文g/目录改名</font><br />  单地用move命o(h)Ud新名字下卛_。例如”mv /usr/oldname /usr/newname?</p><p><font color="#000099">8.删除一个目录下的所有文件和子目录及子目录下的所有文?/font><br />  rm -rf /tmp/example <br />  q些都是l懒Z准备的,新手最好多用man命o(h)学习(fn)。要是英语不好,{中文发行版出来 <img class="wp-smiley" alt=":-(" src="http://www.foxfool.com/wp-includes/images/smilies/icon_sad.gif" /></p><p><font color="#000099">9.快速进入某些目?/font><br />  键入 cd ~ (或cd $HOME)可进入用L(fng)home目录. <br />  键入 cd - 可进入上一ơ所在的目录. </p><p><font color="#000099">10.昄环境变量</font><br />   echo $HOME    昄家目?<br />   echo $PATH    昄可执行文件搜索\?<br />   env           昄所有环境变?可能很多,最好用”env | more?”env | grep PATH”等) <br />   修改环境变量Q在bash下用export,在csh下用setenv。比如:(x) <br />   export PATH=$PATH:/usr/local/bin <br />   要想知道export的具体用法,可以用shell的help命o(h)Qhelp export </p><p><font color="#000099">11.昄文g的类?/font><br />   用file命o(h)Q比如”file /bin/mount?”file xxx.gz?”file netscape?”file initrd.img”等{?<br />   相关的配|文件在/etc/magic或?usr/share/magic </p><p><font color="#000099">12.查找命o(h)文g的\?/font><br />   比如你要查找mount命o(h)的具体\径,可以?<br />   type mount <br />   whereis mount q个命o(h)q可以找Zq个命o(h)文g相关的文件如manuals page?</p><p><font color="#000099">13.查找文g</font><br />   使用find命o(h)Q比如:(x) <br />    find /usr -name XF86*          ?usr目录?包含子目?查找名字前四个字母ؓ(f)XF86的文?<br />    find . -name netscape -print   在当前目录下(包含子目?查找名ؓ(f)netscape的文?<br />    find /home -nouser         ?home目录下查找没有用户属ȝ文g(用户帐号被删除但有遗留文? <br />    find /var -newer test          ?var目录下查找比test文g日期更新的文?<br />   find命o(h)有很多参敎ͼ注意用man命o(h)查看?<br />   更快速的查找文g是用locate,W一ơ用locate之前用updatedb来更新文?目录名数据库?<br />   它把文g/目录信息写到数据库中Q以后查找v来就特别的快。updatedb攑֜crontab中而且~省 <br />   配置是在半夜自动执行。locate存在d的安全性问题,因ؓ(f)普通用户可以用它来取得自己不能 <br />   讉K的目?文g的部分信息。现在有?a >secure locate</a>,把uid/gid也保存到数据库中Q用户在 <br />   locate时先比较权限?</p><p><font color="#000099">14.控制C回卷屏幕</font><br />   如何查看已经卯屏幕的信息呢Q试试这两个按键l合Qshift+PageUp和shift+PageDown <br />   对xterm/nxterm/cxterm/xxgdb都有效。而KDE带的KVT已经做得很好了?</p><p><font color="#000099">15.查看文g内容的特D方?/font><br />   怿最基本的cat和less你已l很熟?zhn)了,如果有特D的要求呢:(x) <br />   如果你只想看文g的前5行,可以使用head命o(h)Q如Q?<br />     head -5 /etc/passwd <br />   如果你想查看文g的后10行,可以使用tail命o(h)Q如Q?<br />     tail -10 /etc/passwd <br />     tail -f /var/log/messages <br />          参数-f使tail不停地去L新的内容Q这h实时监视的效果, <br />          当你在ppp拨号的过E中用它岂不是很方便Q?<br />   查看文g中间一D,你可以用sed命o(h) ? <br />     sed -n ?,10p?/etc/passwd <br />   q样你就可以只查看文件的W?行到W?0行?</p><p><font color="#000099">16.取消^M字符</font><br />   当你FTP一些DOS文g到unix下时Q你l常?x)看见每行文件后面有个讨厌的^M 字符Q?<br />   有两个简单的Ҏ(gu)可以取消它?<br />   用”vi”打开此文Ӟ在Command mode下敲入:(x) <br />     :%s/^V^M//g <br />   或者,在UNIX SHELL下敲? <br />     sed ’s/^V^M//g?foo > foo.new </p><p><font color="#000099">17.利用Find命o(h)改变所有权</font><br />   惌改变当前目录下所有文件的所有权,可以q样: <br />     find . -exec chown OWNER.[GROUP] {} ; (Solaris) <br />     find . -exec chown -R OWNER.[GROUP] {} ; (Linux) </p><p><font color="#000099">18.改变xterm/cxterm下字体大?/font><br />   同时按下Ctrl键和鼠标右键?x)弹Z个菜单让你选择Q也可以在启动xterm时指定字体, <br />   如”xterm -fn 8×16 &?<br />   提示Q难道你不想试试Ctrl+鼠标左键?x)有什么吗?! </p><p><font color="#000099">19.启动一个程序时让它立即q入后台q行方式</font><br />   看过前面一bash的介l应该明白Ctrl+z/bg/fg的用法。有些程序工作v来挺Ҏ(gu)_(d)在它后面?<br />   ?amp;W号看看Q例如”updatedb &”,”netscape &”等{。这栯个shell?x)释攑և来干别的zR注?<br />   q样出来的程序父q程仍然是这个shell,若你退个shell,q些E序也会(x)被kill?除非q个E序 <br />   自己特别处理能脱shell)。徏议退出shell之前用jobs命o(h)查看后台作业?</p><p><font color="#000099">20.使用nohup命o(h)(不挂?</font><br />   如果你想q程在你退出系l后q能执行Q可以用NOHUP命o(h)如:(x) <br />     % nohup tar -cf /dev/tape /home & <br />   你logout退出后再重新登录的话,使用’ps’命令可以看到进E还在执?<br />   注意Q要x命o(h)真正攑ֈ后台q行Qnohup必须?amp;操作同时使用?<br />   有些软g自己能处理SIGHUP信号Q如wgetQ则对它们无ȝnohup?<br />   如果你愿开动脑{的话,q可以用nohup来实现ppp回拨Q先拨号上去Q然后以nohup执行一个自制的 <br />   脚本Q如”sleep 60; ppp-start-script”等{。最后logout退出ƈ挂断?sh)话{着是?</p><p><font color="#000099">21.快速调出历史命?/font><br />   看了上一bash的介l,惛_对history,!,!!q些用法很熟(zhn)了。其实你q可以用上下光标?<br />   来调出历史命令,然后用左叛_标键Udq可~辑命o(h)行?</p><p><font color="#000099">22.产生一个以当日日期为后~的文?/font><br />    file=`date   ?%m%d’` | touch todayis.$file <br />   或者做一个shell脚本Q?<br />     #!/usr/bin/sh <br />     file=`date  ?%M%d’` <br />     touch todayis.$file <br />     exit 0 <br />   注意定义file变量中的“`”不是?‘”,而是左上角数字键1傍边那个(左单引号)?</p><p><font color="#000099">23.man/info的内容存为文本文?/font><br />   以man tcshZQ?<br />   1) man tcsh | col -b > tcsh.txt <br />   2) nroff -man tcsh.man | col -b > tcsh.txt <br />   以info emacsZ <br />   info emacs -o emacs.txt -s <br />   提示Q如果安装了<a >KDE</a>的话用kdehelpȝman page和info page是很方便的?<br />   嫌KDE太大的话q有<a >TkMan</a>可以选择Q也是图?文本方式的Q有搜烦引擎Q功能更强?<br />   新来者要多去看man和info哟! </p><p><font color="#000099">24.关于rpm的小技?/font><br />   1)安装rpm包时昄q度 <br />     ?vh参数Q如rpm -ivh ipchains-1.3.6-1.i386.rpm <br />     如果用glint或xrpm则不必?<br />   2)直接通过ftp来安装rpm?<br />     如rpm -i ftp://ftp.xxx.xxx <br />   3)校验所有的rpm包,查找丢失的文?<br />     rpm -Va <br />   4)查找一个文件属于哪个rpm?<br />     例如Qrpm -qf /usr/bin/who <br />   5)列出一个rpm包的描述信息 <br />     例如Qrpm -qpi mon-0.37j-1.i386.rpm <br />   6)列出一个rpm包的文g信息 <br />     例如Qrpm -qpl mon-0.37j-1.i386.rpm </p><p><font color="#000099">25.快速展开xxx.tar.gz/xxx.tgz压羃的包</font><br />   tar zvfx xxx.tgz 在当前目录下展开q个?<br />   tar zvft xxx.tgz 只测试不展开 <br />   tar zvfx xxx.tgz -C /new-dir 展开后放?new-dir目录?<br />   tar zvfc test.tgz /test ?test目录下所有的文g及子目录打包成test.tgz <br />   tar的参数很多,要仔l学?fn)?</p><p><font color="#000099">26.拯与粘贴文?/font><br />   如果启动了gpmq个守护?deamon)E序的话Q可以用鼠标左键来选择文本Q然后就可以用鼠?<br />   中键把它_脓(chung)C所惌的地斏V如果是两键鼠标则在配置是要选择防真3键鼠标,之后同时?<br />   下左右键模拟中键。在文本l端下应该用鼠标右键来粘贴?</p><p><font color="#000099">27.快速查找某个程序运行中的PID?x</font><br />   例如x找inetd: ps aux | grep inetd <br />   又如x到最吃内存的q程Q?ps aux | sort +4n <br />   扑ֈq程的PID之后可以用killl它发信?或者强制杀d如:(x)kill -9 xxx(某个q程的PID) <br />   在Linux下还提供了一个killallQ可以直接用进E的名字而不是PIDP如killall -HUP inetd <br />   又如killall xdm。killall?x)把信号发给以指定名字的E序q行的所有进E?<br />   用killall -l列出所有可用的信号?<br />   提到ps忍不住给大家介绍一?a >qps</a>,?a >qt</a>写的囑Ş界面Q综合了free,top,ps及kill的特点,q可以看?<br />   q程的Socket/Memory Map/Files信息。还有ؓ(f)KDE写的ktopQ优Ҏ(gu)列出了父子进E的关系?<br />   shutdown -r now 杀掉所有进E立即重新启?<br />   shutdown -h now 杀掉所有进E立卛_?<br />   shutdown -h +5 “Warning: After 5 minutes I’ll shutdown?l用户发消息q在5分钟后停机?<br />   相关命o(h)有reboot,halt,poweroff,init{?<br />   要想实现软gx甉|Q则你的PC机必LATXl构的,然后去配|编译内核,打开 <br />   charactor device/Advanced Power Management support/Power off on shutdownq一V?</p><p><font color="#000099">28.查找Xwindow下的字体信息Q特别是字符映射?内码)</font><br />   xlsfonts 列出所有字?<br />   xfontsel 分类列出所有字体ƈ昄C文本 <br />   xfd 昄某个字体文g中的所有字W及内码Q比如用 xfd -fn hanzigb16fs 看看中文内码 <br />   再用xfd -fn cclib16st看看cxterm所用字库的内码与XF86的不?注意最高位)?</p><p><font color="#000099">29.查找日期为某一天的文g</font><br />   A=`find ~ -print` | ls -l –full-time $A 2>/dev/null | grep “Jun 27?| grep 1998 <br />   Linux的命令很厉害的呀Q?<br />   l你写了下面q个scriptQ用着方便点儿。你把它存成一个随便什么名字的文g,|上x属性就行了?<br />   #!/bin/sh <br />   # Copyright by Ming Gong(宫敏) for news://news.freesoft.cei.gov.cn/chinese.com.linux <br />   # GPL V2, Jun 30, 1998 <br />   # The right of usage, distribution and modification is here by granted by the author. <br />   # The author deny any responsibilities and liabilities related to the code. <br />   # <br />   OK=0 <br />   A=`find $1 -print` <br />   if expr $3 == 1 >/dev/null  ; then M=Jan ; OK=1 ; fi <br />   if expr $3 == 2 >/dev/null  ; then M=Feb ; OK=1 ; fi <br />   if expr $3 == 3 >/dev/null  ; then M=Mar ; OK=1 ; fi <br />   if expr $3 == 4 >/dev/null  ; then M=Apr ; OK=1 ; fi <br />   if expr $3 == 5 >/dev/null  ; then M=May ; OK=1 ; fi <br />   if expr $3 == 6 >/dev/null  ; then M=Jun ; OK=1 ; fi <br />   if expr $3 == 7 >/dev/null  ; then M=Jul ; OK=1 ; fi <br />   if expr $3 == 8 >/dev/null  ; then M=Aug ; OK=1 ; fi <br />   if expr $3 == 9 >/dev/null  ; then M=Sep ; OK=1 ; fi <br />   if expr $3 == 10 >/dev/null  ; then M=Oct ; OK=1 ; fi <br />   if expr $3 == 11 >/dev/null  ; then M=Nov ; OK=1 ; fi <br />   if expr $3 == 12 >/dev/null  ; then M=Dec ; OK=1 ; fi <br />   if expr $3 == 1 >/dev/null  ; then M=Jan ; OK=1 ; fi </p><p>   if expr $OK == 1 > /dev/null ; then <br />     ls -l –full-time $A 2>/dev/null | grep ?M $4?| grep $2 ; <br />   else <br />     echo Usage: $0 path Year Month Day; <br />     echo Example: $0 ~ 1998 6 30; <br />   fi </p><p><font color="#000099">30.使用软盘/光盘{移动介?/font><br />     刚从跺死/瘟都死{q来的朋友,手拿着软盘/光盘不知道该如何办,因ؓ(f)Linux下没有A盘D盘的 <br />   概念.我自己刚开始学?fn)Linux时也是这?以前从来没有做qroot  <img class="wp-smiley" alt=":-)" src="http://www.foxfool.com/wp-includes/images/smilies/icon_smile.gif" /> 。如果你手头有讲Linux <br />   的书Q仔l去看设备及文gpȝ的相关章节。简单地_(d)你需要把软盘/光盘讑֤上的文gpȝ?<br />   装到Linux目录?wi)上的一个点上,UC为安装点(mount point)Q通常是一个目录。安装Linux后会(x) <br />   有个~省的安装点/mntQ在它下面还?mnt/floppy?mnt/cdrom。你可以?<br />       mount -t ext2 /dev/fd0 /mnt/floppy  <–把linux文gpȝ格式的Y盘安装上?<br />       mount -t msdos /dev/fd0 /mnt/floppy <–把dos文gpȝ格式的Y盘安装上?<br />       mount -t vfat /dev/fd0  /mnt/floppy <–vfat支持?5/98的长文g?<br />       mount /dev/hdb /mnt/cdrom  <–把以从盘方式接在第一个IDE口上的光׃的光盘安装上?<br />       mount /dev/cdrom /mnt/cdrom  <?/dev/cdrom是指向光p备的一个连?<br />       mount /mnt/cdrom    <–可以这么用是因为在/etc/fstab里已l定义了 <br />       umount /mnt/floppy  <–在拿出软盘之前先要把它卸蝲 <br />       umount /mnt/cdrom   <–不卸蝲拿不出光盘 <br />   当然你也可以自己Z些安装点Q比如”mkdir /mnt/smb?”mkdir /scd”然?<br />       mount -t iso9660 /dev/scd0 /scd  <?dev/scd0: SCSI光驱 <br />       smbmount //fjj/download /mnt/smb <br />   {等Q熟(zhn)之后就可以灉|q用?<br />   单用mount而不跟Q何参数可以显C已l安装的文gpȝQ或者查?etc/mtab文g <br />   初学者还l常问到如何格式化磁盘,在Linux里概忉|些不同,UC为制作文件系l?make filesystem) <br />   应该用mkfs命o(h)Q由于现在的Linux都用ext2格式Q最好直接用mke2fs,比如mke2fs /dev/fd0 <br />   mke2fs /dev/hdb2{等。如果要对Y盘低U格式化Q则可以用fdformatQ而硬盘在出厂时已l格式化Q?<br />   无须低格式?那是危险?。检查文件系l则用e2fsckQ如e2fsck -av /dev/fd0?<br />   哈,q个Ҏ(gu)不上Tips,不过有些初学者L不喜Ƣ看书思考,甚至q问如何d/删除用户?</p><p><font color="#000099">31.d/删除用户</font><br />   用useradd username(或者adduser username)d一个名为username的用P然后用passwd username <br />   指定口o(h)。用L(fng)信息记录?etc/passwd文g里,׃每个用户都可?而且必须?dq个文g?<br />   后就可以crack出其它用L(fng)密码Qؓ(f)安全考虑现在都用shadow。在/etc/passwd下用L(fng)口o(h)变ؓ(f)x <br />   真正的口令密文记录在/etc/shadow里,而这个文件只有以root权限才能d。Redhat 5.1以下版本?<br />   有直接用shadowQ需要用pwconv转换一下,如果要变回来Q可以用pwunconv。提C:(x)?etc/skel?<br />   录记录了一个用户应该有的基本文?ls -a /etc/skel/看看都有什?,useradd?x)自动把q些文g?<br />   制到用户的家目录下ƈ|上适当的权?除非d用户时用?m参数: useradd -m xxx)。如果你在这?<br />   目录下键一个public_html的目录,则以后添加的用户在它的家目录下都?x)自动有个同名的目录Q这?<br />   每个用户都有了“个Z”?<br />   删除用户可以用userdel usrname或userdel -r username(有些发行版可能是deluser)Q?r参数?x)删?<br />   q个用户的家目录Q但是在pȝ里别的地方还可能有此用户的信息,所以在删除用户之前最好还?<br />   用find / -user username{方式去找一扄关信息?<br />   如果要(f)时禁止一个用P可以?etc/passwd文g中此用户的密码这一第一个字W前d一?受?<br />   如果把密码域改ؓ(f)I,则此用户不需要密码就可以q入pȝQ当你忘记root口o(h)Ӟ可以用Y盘启?<br />   把原来的root安装上来Q直接去改passwd文g。我记得以单用户方式启动时不需要密码可以进厅R?<br />   长用户名的问题,在Redhat发行版中已经做得很好了,也允许用户名中有I格。如果你手上的发行版 <br />   不支持,?usr/include/utmpbits.h里把UT_NAMEDSIZE改ؓ(f)32,重新~译相关E序?<br />   另一个直观的配置工具是linuxconfQ比如用它来配置pppuser{等?<br />   q里只能l一些线?自己多看”man useradd?”man shadow?”man group?”man userdel”…?<br />   再一ơ徏议新来者多看书多思考多看看man pageQ否则不大容易找?etc/skel是干什么的?</p><p><font color="#000099">32.列出一个目录占用的I间</font><br />   du或du -s或du -k <br />   du -S | sort -n 可以q速发现那个目录是最大的?<br />   用df可以看到已安装的文gpȝ的空间大及剩余I间大小?<br />   quota -v查看用户的磁盘空间信?如果你用quota限制了用L(fng)间大的话?</p><p><font color="#000099">33.命o(h)补v(TAB键的妙用)</font><br />   很多shell都有q个功能?<br />   1) 只需输入文g或目录名的前几个字符, 然后按TAB <br />      ?如无盔R?完整的文件名立即自动在命令行 <br />      出现;如有盔R?再按一下TAB?pȝ?x)列?<br />      当前目录下所有以q几个字W开头的名字.例如 <br />      cd /mnt/cd<tab?gt; 自动补v?cd /mnt/cdrom <br />   2) 在命令行?只需输入例如”m?再连l按两次TAB <br />      ?pȝ列出所有以”m”开头的命o(h),(包括自定?<br />      的Bshell命o(h)函数),Ҏ(gu)找某些记不清楚的命o(h)?<br />      有用.例如输入”ftp?查到ftp,ftpcount,ftpwho <br />      ftpshut{本不熟(zhn)的命o(h). </p><p><font color="#000099">34.在redhat5.0中没有setenv,用set讑֮的变量在E序中用getenvM出来.</font><br /><font color="#000099">   用哪个函数可以读出用set讑֮的环境变?</font><br />   set env;export env <br />   然后在用getenv去读?</p><p><font color="#000099">35.让grep搜寻文g及所有子目录下的文g里的内容</font><br />   例如搜寻ZhXwin下所有C原代码中的”Chinput?试试取消下行?q参数): <br />   find /download/ZhXwin -name *.c -exec grep -q -s Chinput {} ; -print <br />   查找所有文件则可以用:(x) <br />   find . -type f -exec grep -s chinese {} ; -print <br />   如果喜欢囑Ş界面QKDE带的kfind很不错?</p><p><font color="#000099">36.查看启动时的log信息</font><br />   首先L?etc/syslog.conf文gQ找到对应的文g?<br />   (更详l的信息ȝ”man syslogd?“man syslog.conf?以及”man klogd? <br />   通常在SlackWare下ؓ(f)/var/adm/messagesQ在Redhat下ؓ(f)/var/log/messages?<br />   q些文g可能?x)很大,要注意备份和删除?<br />   前面已经提到用tail(tail -f)查看q些文g的方法,另外q有?a >logscanner</a>工具Q挺不错的?</p><img src ="http://www.tkk7.com/jelver/aggbug/72431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2006-09-28 08:14 <a href="http://www.tkk7.com/jelver/articles/72431.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下rpm命o(h)的基本用?http://www.tkk7.com/jelver/articles/69344.html冰河快狼冰河快狼Wed, 13 Sep 2006 04:35:00 GMThttp://www.tkk7.com/jelver/articles/69344.htmlhttp://www.tkk7.com/jelver/comments/69344.htmlhttp://www.tkk7.com/jelver/articles/69344.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/69344.htmlhttp://www.tkk7.com/jelver/services/trackbacks/69344.html Linux下rpm命o(h)的基本用?/font>
 
rpm基本用法  


   1.安装一个包
     # rpm -ivh 

   2.升一个包
     # rpm -Uvh 

   3.U走一个包
     # rpm -e 

   4.安装参数
    --force  即覆盖属于其它包的文g也强q安?
    --nodeps 如果该RPM包的安装依赖其它包,即其它包没装,也强q安装?

   5.查询一个包是否被安?
     # rpm -q < rpm package name>

   6.得到被安装的包的信息
     # rpm -qi < rpm package name>

   7.列出该包中有哪些文g
     # rpm -ql < rpm package name>

   8.列出服务器上的一个文件属于哪一个RPM?
     # rpm -qf 

   9.可综合好几个参数一L(fng)
     # rpm -qil < rpm package name>

  10.列出所有被安装的rpm package
     # rpm -qa 

  11.列出一个未被安装进pȝ的RPM包文件中包含有哪些文Ӟ
     # rpm -qilp < rpm package name>


冰河快狼 2006-09-13 12:35 发表评论
]]>
RHEL AS4U3+httpd2.2+tomcat5.5+mysql5.0+php5.1详细安装文档 http://www.tkk7.com/jelver/articles/69289.html冰河快狼冰河快狼Wed, 13 Sep 2006 01:02:00 GMThttp://www.tkk7.com/jelver/articles/69289.htmlhttp://www.tkk7.com/jelver/comments/69289.htmlhttp://www.tkk7.com/jelver/articles/69289.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/69289.htmlhttp://www.tkk7.com/jelver/services/trackbacks/69289.html
发表? 2006-8-24 10:15     [引用]  [投诉][快速回复]

在论坛里看了许多相关帖子Q自׃实验了多ơ,l于在前几天试成功Q感谢cu里的前辈们ؓ(f)我们Ch\Q因为我实际工作中要用到q些Q以前是兄弟公司的哥们帮我们配置。现在我也配|成功,和大家分享一下成果吧。一直从cu里吸取精华,希望我的文档能给一些新人有帮助?br />   说明Q实现WEB服务器能q行html、php、jsp{格式文?br />
一、?      所用Y件及版本
1、?      操作pȝQRHEL as4u3
2、?      ApacheQhttpd-2.2.2.tar.gz
apr-util-1.2.7.tar.gz
apr-1.2.7.tar.gz
3、?      TomcatQapache-tomcat-5.5.15.tar.gz
4、?      MysqlQmysql-5.0.22.tar.gz
5、?      JdkQjdk-1_5_0_07-linux-i586.bin
6、?      Apache和Tomcatq接Qtomcat-connectors-1.2.18-src.tar.gz
7、?      Php: php-5.1.4.tar.gz
二、?      安装步骤Q?br />1、?      安装操作pȝQ这里就不介l了Q主要将相关的开发包装上。我所有开发包都安装了?br />2、?      Apache安装Q将以上所需要的所有Y件上传到/usr/local下?br />先解压:(x)

tar xvfz httpd-2.2.2.tar.gz
cd httpd-2.2.2
首先可以看看里面的安装说明INSTALL和README?br />在安装apache之前先安装apr-util-1.2.7.tar.gz和apr-1.2.7.tar.gz
首先安装apr?br />
tar xvfz apr-1.2.7.tar.gz
cd apr-1.2.7
./configure --prefix=/usr/local/apr-httpd
make
make install
cd ..
再安装apr-util-1.2.7.tar.gz

tar xvfz apr-util-1.2.7.tar.gz
cd apr-util-1.2.7
./configure --prefix=/usr/local/apr-util-httpd --with-apr=/usr/local/apr-httpd
make
make install
3、?      接下来l安装apache

cd ../httpd-2.2.2
./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-module=most --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd --enable-so
make
make install
如果没有报错Qapache基本安装完毕?br />4、?      安装JDK
回到l(f)ocal目录下:(x)

cd ..
./jdk-1_5_0_07-linux-i586.bin
ln –s jdk1.5.0_07 jdk
讄JDK环境变量

vi /etc/profile
再文件尾部增加以下几句:(x)

JAVA_HOME=/usr/local/jdk
JRE=$JAVA_HOME/jre
LC_ALL=zh_CN.GBK
PATH=$JAVA_HOME/bin:$JRE/bin:$PATH
CLASSPATH=.:$JAVA_HOME/bin/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME JRE LC_ALL CLASSPATH PATH
5、?      安装MYSQL

tar xvfz mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure --prefix=/usr/local/mysql/ --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler
make
make install
groupadd mysql
useradd -g mysql mysql
cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
chown -R root  .
chown -R mysql var
chgrp -R mysql .
bin/mysqld_safe --user=mysql &
mysqladmin –uroot password new-password
6、?      安装php

tar xvfz php-5.1.4.tar.gz
cd php-5.1.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
make && make install
cp php.ini-dist /usr/local/lib/php.ini
7、?      安装tomcat

tar xvfz apache-tomcat-5.5.15.tar.gz
mv apache-tomcat-5.5.15 tomcat
8、?      安装Apache和Tomcatq接

tar zxvf tomcat-connectors-1.2.18-src.tar.gz
cd tomcat-connectors-1.2.18-src/ native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
三、?      配置httpd.conf

cd /usr/local/conf/
vi httpd.conf
1、?      注释掉一下几?br />
#ServerAdmin you@example.com
#ServerName www.example.com:80
#DocumentRoot "/usr/local/apache/htdocs"
2、?      修改里面相关内容
A?br />
<Directory />
    Options FollowSymLinks
#    AllowOverride None
     AllowOverride all
     Order deny,allow
#    Deny from all
     Allow from all
</Directory>
B?br />
#<Directory "/usr/local/apache/htdocs">
<Directory "/usr/local/tomcat/webapps">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
#    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>
因ؓ(f)我这里将|站攑֜/usr/local/tomcat/webapps?br />
C、将

#Include conf/extra/httpd-vhosts.conf
q行#除掉

3、?      增加以下内容Q?br />A、在AddType application/x-gzip .gz .tgz下增加以下两?br />
AddType application/x-httpd-php .php .phtml
   AddType application/x-httpd-php-source .phps
B、结֢?br />
#add mod_jk module
LoadModule jk_module modules/mod_jk.so
# Update this path to match your modules location
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to #httpd.conf)
  JkWorkersFile /usr/local/apache/conf/workers.properties
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
  JkLogFile     /usr/local/apache/logs/mod_jk.log
# Set the jk log level [debug/error/info]
  JkLogLevel    info
# Select the log format
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
  JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
  JkRequestLogFormat     "%w %V %T"
# Send everything for context /examples to worker named worker1 (ajp13)
  JkMount  /*.jsp worker1
C、在/usr/local/apache/conf下增加一个workers.properties文gQ内容如下:(x)

# Define 1 real worker using ajp13
  worker.list=worker1
# Set properties for worker1 (ajp13)
  worker.worker1.type=ajp13
  worker.worker1.host=localhost
  worker.worker1.port=8009
  worker.worker1.lbfactor=50
  worker.worker1.cachesize=10
  worker.worker1.cache_timeout=600
  worker.worker1.socket_keepalive=1
  worker.worker1.reclycle_timeout=300
D、再~辑/usr/local/apache/conf/extra/下httpd-vhosts.conf文g

vi httpd-vhosts.conf
里面例子修改一?br />
<VirtualHost 192.168.0.170:80>
<Directory "/usr/local/tomcat/webapps/ROOT" >
DirectoryIndex index.htm index.html index.jsp index.php
</Directory>
    ServerAdmin xxx@126.com
    DocumentRoot /usr/local/tomcat/webapps/ROOT
    ServerName 192.168.0.170
    ErrorLog logs/170-error_log
    CustomLog logs/170-access_log common
</VirtualHost>
因ؓ(f)没有做域名解析,我这里在ServerName下直接用的是IP地址?br />四、?      试
先启动tomcatQ再启动apache。启动apache之前可以到apache/bin下测试一下虚拟域是否配置正确?/httpd –S 如果配置有错误会(x)提示你?br />没有问题后,在IE地址栏输入http://192.168.0.170 此时显C的是tomcat的默认界面,证明可以正常讉Kjsp文g了。再?usr/local/tomcat/webapps/ROOT下index.jsp换一个index.php文gQ只要在index.php里输入以下内容即可测试:(x)

<? echo phpinfo() ?>
重启apacheQ再在IE地址栏输入http://192.168.0.170 能看到php的相关信息?br />主要参考文章有Q?br />http://www.chinaunix.net/jh/13/669895.html
http://www.chinaunix.net/jh/13/770898.html
http://httpd.apache.org/docs/2.2/


冰河快狼 2006-09-13 09:02 发表评论
]]>
vmware 4.5.1+redhat9.0+oracle 9.2.0.4 (转脓(chung))http://www.tkk7.com/jelver/articles/68220.html冰河快狼冰河快狼Thu, 07 Sep 2006 04:27:00 GMThttp://www.tkk7.com/jelver/articles/68220.htmlhttp://www.tkk7.com/jelver/comments/68220.htmlhttp://www.tkk7.com/jelver/articles/68220.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/68220.htmlhttp://www.tkk7.com/jelver/services/trackbacks/68220.html我的安装环境是:(x)vmware 4.5.1+redhat9.0+oracle 9.2.0.4Q虚Z只有120M内存?G盘Q资源非常紧张?

首先必须把ORACLE发行介质?张光盘放到公司的270L上,解开生成STAGE文gQ然后再通过NFS讉KQ解决NFS讉K的问题花了老E子劲了)?

然后要忍受ORACLE安装期间低的系l性能Q即使关闭所有不必要的应用,q是需要等待数U的H口切换旉Q到最后安装完毕,W记本电(sh)脑靠q硬盘的地方竟然微微发热Q声明一下,公司I挺猛的)?

最后还不得不取消ORACLE建库Q因Z个数据库实例的最低内存要求是我实存的114%Q?

安装q程参阅的文档如下(不同的地方用U色标出Q:(x)


在安装之前有几个地方需要注意的Q?
你的交换分区最好有一个G左右那么大,W二你的盘分区最好也要有_大的I间?
-- 我的swapI间251mQ用率一度接q?0%
下面我那个{贴的中译本:(x)
-- 也是舶来?
1、创建用户和l:(x)
[roko@miniroko] su -

[root@miniroko]# groupadd oinstall
[root@miniroko]# groupadd dba
[root@miniroko]# useradd -g oinstall -G dba oracle
[root@miniroko]# passwd oracle

2、准备文件目录:(x)
-- q步可以省略QrunInstaller?x)替你做?
[root@miniroko]# mkdir -p /opt/ora9/product/9.2
[root@miniroko]# mkdir /var/opt/oracle
[root@miniroko]# chown oracle.dba /var/opt/oracle
[root@miniroko]# chown -R oracle.dba /opt/ora9

3、调节系l内核参数及安装支持软g包:(x)
3.1、首先用命o(h)rpm -qa|grep compat 查看pȝ中是否安有以下几个Y件包Q?

compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm

如果没有Q请拿出你的安装盘,安装以上的包。不要用原文l的那个APT的东东,不熟的h遇上没有解决的依赖性问题的话,q别讨厌?
-- 我去下蝲q些包的url地址Qhttp://download.fedoralegacy.org/redhat/9/os/i386/

3.2、设|内核参敎ͼ调节信号灯及׃n内存Q?
[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem
[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax
[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni
[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall
[root@miniroko]# echo 65536 > /proc/sys/fs/file-max
[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

当然Z一开机系l就能自动帮你设好这些参敎ͼ也可改动 /etc/sysctl.conf q个文gQ加入以下的语句Q?
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

保存后,卛_。徏议关于net.ipv4.ip_local_port_range不要改动Q可以用cat /proc/sys/net/ipv4/ip_local_port_range 看到U帽子对q个所定义的范围已l符合,而且端口范围比这个小?

3.3、设|oracleҎ(gu)件的要求Q?
~辑文gQ?etc/security/limits.conf 加入以下语句Q?
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

q个需要重启后才能生效的。但是安装的时候无所谓了?
-- q是作者的臆断了,re-loginq效了

4、设|oracle的系l环境:(x)
以oracle用户的n份登录:(x)
su oracle

cd ~

~辑它的.bashrc文g加入以的东东Q?
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
#export NLS_LANG='croatian_croatia.ee8iso8859p2' (注意q个东东把它注释掉,因ؓ(f)我们用的是中文系l。然而ؓ(f)了能够显CZ文加入以下一行:(x)
export LC=en_US
-- 非oracle的几个环境变量设|应该很关键

退出,你下蝲的三个iso文g准备好?
5、解压你下蝲的文Ӟ(x)
5.1、新Z个目录:(x)mkdir /mnt/Oracle
5.2、将三个文g拷入新徏的目录:(x)cp ln_* /mnt/Oracle
5.3、解压三个文Ӟ(x) cd /mnt/Oracle
gunzip gunzip lnx_920_disk1.cpio.gz
gunzip lnx_920_disk2.cpio.gz
gunzip lnx_920_disk3.cpio.gz
cpio -idmv < lnx_920_disk1.cpio
cpio -idmv < lnx_920_disk2.cpio
cpio -idmv < lnx_920_disk3.cpio
5.4、这个将生成三个文g夹:(x)DISK1, DISK2, DISK3
6、开始安装:(x)
以oracle的用戯n份进入:(x)
su oracle
cd ~
/mnt/Oracle/DSIK1/runInstall.sh

-- 可能是我今天q气好或者是oracle的新发行介质已经修正了错误,后面提到的错误我都没有碰刎ͼ所以后面的修正步骤都没有执行。最后dbca正常q行Q因源的限制被我取消了?
-- 以下省略Q原文见链接Q这可是人家2003q的著作Q?

一个群UNIXBLOGQ由成员共同l护。欢q同道一h?
http://www.unixblog.net

冰河快狼 2006-09-07 12:27 发表评论
]]>Zlinux操作pȝ架构openvpnȝ http://www.tkk7.com/jelver/articles/43456.html冰河快狼冰河快狼Thu, 27 Apr 2006 00:58:00 GMThttp://www.tkk7.com/jelver/articles/43456.htmlhttp://www.tkk7.com/jelver/comments/43456.htmlhttp://www.tkk7.com/jelver/articles/43456.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/43456.htmlhttp://www.tkk7.com/jelver/services/trackbacks/43456.html使用OPENVPN实现各机房的互?1

1 现状 2

2 |络l构 2

3 服务器信息以及网l安?4

3.1 服务器信?4

3.2 |络安全 4

4 使用openvpn实现南北互?5

4.1 Openvpn?5

4.2 下蝲 5

4.3 安装 6

4.4 你的操作pȝ支持tun吗? 6

4.5 配置C/Sl构的VPN|络 7

4.5.1 如何生成ca和cert/key? 7

4.5.1.1 产生MASTER Certificate Authority(CA) 的公?certificate)和私?key) 7

4.5.1.2 创徏server端的cert和key文g 8

4.5.1.3 创徏3个client端cert和key文g 9

4.5.1.4 建立 Diffie Hellman文g 9

4.5.1.5 所有文件的列表及用的L 9

4.5.2 OpenVPN Server端的配置 10

4.5.3 OpenVPN Client端的配置 12

4.5.4 q行OpenVPN 14

5 其它配置 15

5.1 让多个client的子|间互?15

5.2 控制q行中的openvpnq程 15

5.3 windows下的配置Q?15

6 实际应用情况 16

7 参考文?17

1 现状

假设现在的某公司的服务器存放在广州、河北、杭州三个机房中Q每个机房用不用的子网Q?

代码:

机房 子网Q内部)

q州 10.1.0.0/16

沛_ 10.2.0.0/16

杭州 10.3.0.0/16

各机房用不同的|段Qؓ(f)使用vpnq接创造了有利条g?

׃?sh)信至网通间的网l速度是否~慢Q对q州与河北机戉K的数据同步带来非常大的困难。我们找C台即q接了网通的U\Q又q接了电(sh)信线路的服务器,但却不能直接用其作ؓ(f)路由。如果用porxy的方式或转发的方式又?x)降低同步的效率?

采用C/Sl构的vpn方式Q即解决了同步的问题Q又不会(x)影响同步的效率?

2 |络l构

下图是三个机房实Cq互通后的拓扑图Q?

Q由于是发到论坛的关p,L(fng)贴子最后的图)

从上囑֏以看刎ͼ该VPNpȝ是一个C/S的结构。中间ؓ(f)VPN SERVERQ广州、河北、杭州三个机房各取出一台服务器作ؓ(f)VPN CLIENT?

VPN SERVER拥有两块|卡和两条线路(?sh)信和网通)Q两个网卡均需要设|公|IP。根据实际的情况讄路由Q这里我是设|电(sh)信的U\为默认\由,讄到河北机房网D늚走网通的路由?

VPN CLIENT可以有两块网卡也可以只用一块网卡,如果是电(sh)信的U\则连接vpn server的电(sh)信的IPQ如果是|通的U\则连接网通的vpn server 的网通方面的IP?

3 服务器信息以及网l安?

3.1 服务器信?

在本文中我们使用?台服务器分别作ؓ(f)vpn server和client。由于用vpn传输数据Ҏ(gu)务器的负载不大,所以除了vpn server需要一台新的服务器外,各机房的client服务器只需要找一台负载轻的服务器来担当即可?

本文使用的四台服务器的详l信息:(x)

代码:

机房 Vpn 模式 操作pȝ 服务器IP

Vpn server RedHat 9.0 公网IP1 (|?

公网IP2Q电(sh)信)

q州机房 Vpn client FreeBSD4.9 10.1.0.1

沛_机房 Vpn client RedHat9.0 10.2.0.1

杭州机房 Vpn client FreeBsd4.9 10.3.0.1

3.2 |络安全

除vpn server外,其它的机房中的vpn client均无需公网IPQ所以vpn server需要加强安全方面的讄?

该服务器是RedHat9.0的操作系l,登陆界面使用的是grubQƈ讄的grub密码Q保证物理上的安全?

使用Iptables讄包过滤防火墙Q只允许你的服务器对其进行访问:(x)

代码:

iptables –F

iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT

iptables -A INPUT -s YOURNETWORK -j ACCEPT

iptables -A INPUT -p udp --dport 1194 –j DROP

4 使用openvpn实现南北互?

4.1 Openvpn?

OpenVPN 是一个强大、高度可配置、基于ssl?VPN QVirtual Private NetworkQOpen Source 软g。它h多种的验证方式以及许多强大的功能?

OpenVPN工作在OSI模型的第2或第3层,使用SSL/TLS协议q行|络传输。支持多U客戯证方法,如证书、smart cardsQ加上用户名密码的证书认证等。除此以外,q有强大的ACL功能限制客户的信息交换?

OpenVPN可以q行在多U操作系l中Q包括:(x)

Linux, Windows 2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Solaris.

使用OpenVpnQ可以实?

?使用特定udp或tcp端口实现两台L的之间的vpnq接?

?实现C/Sl构Q实现多台client通过server服务器互q互通?

?通过TLS/SSL加密保证数据传输的安全?

?通过数据的压~,提高数据传输的速度?

Q由于其它功能在本文中ƈ不需要用,如想要详l了解请讉Khttp://openvpn.netQ?

4.2 下蝲

从以下网址下蝲最新版本的openvpn source包?

http://nchc.dl.sourceforge.net/sourceforge/openvpn/openvpn-2.0_rc16.tar.gz

׃openvpn需要用数据压~,所以还需要安装lzo包:(x)

http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz

4.3 安装

LinuxQ?

代码:

软g ~译安装

Lzo ./configure Make && make install

Openvpn ./configure -prefix=/opt/openvpn Make && make install

FreeBSDQ?

代码:

Lzo ./configure Make && make install

Openvpn ./configure -prefix=/opt/openvpn --with-lzoQheaders=/usr/local/include --with-lzo-headers=/usr/local/include Make && make install

参照上面的安装方法分别在linux和freebsdL上安装好openvpn?

4.4 你的操作pȝ支持tun吗?

从我安装q的操作pȝ看,RedHat9.0和FreeBSD4.9的内栔R认已l支持TUNQƈ且已l安装tun模块。RedHat AS3则没有该模块Q需要重新编译内核支持?

加蝲tun模块Q?

●Linux 2.4 or higher (with integrated TUN/TAP driver):

(1) make device node: mknod /dev/net/tun c 10 200

(2a)add to: echo "alias char-major-10-200 tun" >> /etc/modules.conf

(2b) load driver: modprobe tun

(3) enable routing: echo 1 > /proc/sys/net/ipv4/ip_forward

●FreeBSD 4.1.1+:

kldload if_tap

4.5 配置C/Sl构的VPN|络

4.5.1 如何生成ca和cert/key?

代码:

Ca certificate

authorityQ认证授权)Q所有的server和client均用同一个ca文g?

cert certificateQ证书)。公钥,每一个server和client各自独立生成的公钥?

key U钥Q每一个server和client工作独立生成的私钥?

?server端只需要知道它自己的cert和key。它不需要知道每一个可以连接到它的client的cert?

?server端接受的client必须拥有以server的CA产生的cert。server能用它自己的CAU钥来确认client的cert中是否带有其CA的记受?

4.5.1.1 产生MASTER Certificate Authority(CA) 的公?certificate)和私?key)

#######

In this section we will generate a master CA certificate/key, a server certificate/key, and certificates/keys for 3 separate clients

#######

在本节,我们?x)尝试徏立一对master CA的cert和keyQ一对server端的cert和keyQ和3个不同client的年的cert和keys?

UNIXQ?

在openvpn的源码中可以扑ֈeasy-rsa文g夏V?

cd easy-rsa

. ./vars 建立环境变量 Q这个地方很多h?x)弄错,两点之间是有I间?

./clean-all 清除以前?

./build-ca 建立CA

最后一个命令会(x)调用openssl来创建CA的公钥和U钥:

代码:

Country Name (2 letter code) [KG]:

State or Province Name (full name) [NA]:

Locality Name (eg, city) [BISHKEK]:

Organization Name (eg, company) [OpenVPN-TEST]:yourcorp 在此输入公司?

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:hbroute 在此输入L名或随便输一个名?

Email Address [me@myhost.mydomain]:

其它的按默认卛_?

完成后会(x)在keys目录中创建ca.crt ca.key index.txt serial四个文g?

4.5.1.2 创徏server端的cert和key文g

cd easy-rsa

./build-key-server server

代码:

Country Name (2 letter code) [KG]:

State or Province Name (full name) [NA]:

Locality Name (eg, city) [BISHKEK]:

Organization Name (eg, company) [OpenVPN-TEST]:yourcorp 输入公司?

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:hbrouteserver 输入L名或随便一个名?

Email Address [me@myhost.mydomain]:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Sign the certificate? [y/n]:y 输入y

1 out of 1 certificate requests certified, commit? [y/n]y 输入y

Write out database with 1 new entries

Data Base Updated

其它的按回R?

4.5.1.3 创徏3个client端cert和key文g

与创建server端的非常怼.

./build-key gz

./build-key hb

./build-key hz

注意gz、hb和hz不能一P否则两个相同名字的client只能有一个能q接q来?

如果想用带密码的client keyQ可以用build-key-pass脚本?

如徏立广州的Q?

代码:

./build-key gz

Country Name (2 letter code) [KG]:

State or Province Name (full name) [NA]:

Locality Name (eg, city) [BISHKEK]:

Organization Name (eg, company) [OpenVPN-TEST]:mycorp

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:gz 键入"gz"

Email Address [me@myhost.mydomain]:

Certificate is to be certified until Mar 14 08:15:16 2015 GMT (3650 days)

Sign the certificate? [y/n]:y 键入“y?

1 out of 1 certificate requests certified, commit? [y/n]y 键入“y?

Write out database with 1 new entries

Data Base Updated

4.5.1.4 建立 Diffie Hellman文g

Diffie Hellman参数必须要在openvpn server中用?

./build-dh

4.5.1.5 所有文件的列表及用的L

代码:

Filename Needed By Purpose Secret

ca.crt server + all clients Root CA certificate NO

ca.key key signing machine only Root CA key YES

Dh{n}.pem server only Diffie Hellman parameters NO

server.crt server only Server Certificate NO

server.key server only Server Key YES

gz.crt q州 only gz Certificate NO

Gz.key q州 only gz Key YES

hcrt 沛_ only hb Certificate NO

hb.key 沛_ only hb Key YES

hz.crt 杭州 only hz Certificate NO

hz.key 杭州 only hz Key YES

Ҏ(gu)上表Q将所有的文g拯到需要这些文件的L上?

4.5.2 OpenVPN Server端的配置

刚安装完openvpn的时候,/opt/openvpn目录下只有sbin和man两个文g夹,为方便v见,我们可以在该目录下徏立其它的文g夏V?

代码:

目录?作用

Sbin 攄openvpn的主E序“openvpn?

Conf 攄配置文g

Ccd 攄各client的独立配|文?

Log 攄server的日志文?

Keys 攄认证文g

Man 攄man文档

配置文gQ?/conf/server.conf

代码:

port 1194

proto udp

dev tun

ca /opt/openvpn/keys/ca.crt

cert /opt/openvpn/keys/server.crt

key /opt/openvpn/keys/server.key

dh /opt/openvpn/keys/dh1024.pem

server 10.99.0.0 255.255.255.0

ifconfig-pool-persist /opt/openvpn/log/ipp.txt

client-config-dir ccd

route 10.1.0.0 255.255.0.0

route 10.2.0.0 255.255.0.0

route 10.3.0 255.255.0.0

push "route 10.10.0 255.255.0.0"

push "route 10.2.0.0 255.255.0.0"

push "route 10.3.0.0 255.255.0.0"

client-to-client

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status /opt/openvpn/log/openvpn-status.log

log /opt/openvpn/log/openvpn.log

verb 6

mute 20

writepid /opt/openvpn/log/server.pid

Client的自定义配置Q?/ccd/

代码:

gz:

iroute 10.1.0.0 255.255.0.0

hz:

iroute 10.3.0.0 255.255.0.0

hb:

iroute 10.2.0.0 255.255.0.0

配置文g解释Q?

代码:

;local a,b,c,d listen的IP

port 1194 listen的端?

proto udp 使用UDP协议

dev tun 使用tunnel的模?

ca ca.crt 公钥Qs端和c端用相同的caQ?

cert server.crt server的公?

key server.key server的私钥(要保好Q(s端和c端用各自的cert和keyQ?

dh dh1024.pem 产生Ҏ(gu)Qopenssl dhparam -out dh1024.pem 1024

server 10.99.0.0 255.255.255.0 讄为server模式Qƈ指定子网的IPD,server端默认会(x)设ؓ(f).1的地址?

ifconfig-pool-persist ipp.txt 当vpn断开或重启后Q可以利用该文g重新建立相同IP地址的连接?

push "route 10.1.0.0 255.255.0.0" 让client端徏立到另一个子|的路由?

client-to-client 让不同的client之间可以互相“看到”?

;max-clients 100 最多的client数量?

keepalive 10 120 ?0Uping一ơ,如果120U没有回应则认ؓ(f)Ҏ(gu)已经down?

user nobody

group nobody 指定q行openvpn的用户和l。(减少危险Q?

persist-key

persist-tun

status openvpn-status.log 每分钟记录一ơ连接的状态?

log openvpn.log log记录到指定文件中

verb 3 讄日志要记录的U别?

0只记录错误信息?

4能记录普通的信息?

5?在连接出现问题时能帮助调?

9是极端的Q所有信息都?x)显C,甚至q包头等信息都显C(像tcpdumpQ?

mute 20 相同信息的数量,如果q箋出现20条相同的信息Q将不记录到日志中?

4.5.3 OpenVPN Client端的配置

代码:

目录?作用

Sbin 攄openvpn的主E序“openvpn?

Conf 攄配置文g

Keys 攄认证文g

Man 攄man文档

配置文gQ?/conf/client.conf

q州Q?

代码:

Client

dev tun

proto udp

remote VPNSERVERIP11194

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca /opt/openvpn/keys/ca.crt

cert /opt/openvpn/keys/gz.crt

key /opt/openvpn/keys/gz.key

comp-lzo

verb 3

mute 20

杭州Q?

代码:

client

dev tun

proto udp

remote VPNSERVERIP1 1194

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca /opt/openvpn/keys/ca.crt

cert /opt/openvpn/keys/hz.crt

key /opt/openvpn/keys/hz.key

comp-lzo

verb 3

mute 20

沛_Q?

代码:

client

dev tun

proto udp

remote VPNSERVERIP2 1194

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca /opt/openvpn/keys/ca.crt

cert /opt/openvpn/keys/hb.crt

key /opt/openvpn/keys/hb.key

comp-lzo

verb 3

mute 20

4.5.4 q行OpenVPN

建立脚本Q?

Server端:(x)

代码:

#!/bin/sh

OPENVPN=/opt/openvpn/sbin/openvpn

CFG=/opt/openvpn/conf/server.conf

PID=`cat /opt/openvpn/log/server.pid`

case "$1" in

start)

$OPENVPN --config $CFG &

;;

stop)

kill $PID

;;

restart)

kill $PID

sleep 5

$OPENVPN --config $CFG &

;;

*)

echo "Usage: `basename $0` {start|stop|restart}"

;;

esac

Client?

代码:

#!/bin/sh

/opt/openvpn/sbin/openvpn --config /opt/openvpn/conf/client.conf &

5 其它配置5.1 让多个client的子|间互?

●client-config-dir ccd

d一个ccd的文件夹Q里面的文g名ؓ(f)client的名字(如gzQhbQ。当一个新clientq接到server上时Q程序会(x)查ccd文g夹,看是否有一个文件的名字与client的名字一致。如果有Q进E会(x)读该文g里面的指令ƈ这些指令应用于该名字的client?

●在ccd文g夹中创徏一个文件hzQ该文g中包括:(x)

iroute 10.3.0.0 255.255.0.0 q会(x)告诉hz clientQ不要在本机d10.3.0.0|段Q因为杭州本来就?0.23/16|段Q?

●在server的配|文件中加入Q?

route 10.3.0.0 255.255.0.0

如果想两个client可以互通,请在server的配|文件中加入Q?

client-to-client

push "route 10.3.0.0 255.255.0.0"

记得在各子网内的机器上设|\由(如果server和client机器不是作ؓ(f)默认|关的话Q?

5.2 控制q行中的openvpnq程

在配|文件中加入writepid参数指定pid文g?

SIGUSR1--以非root的n份重启openvpnq程?

SIGHUP--重启

SIGUSR2--输出q接l计到l(f)og文g

SIGTERM,SIGINT--exit?

5.3 windows下的配置Q?

windows版本的openvpn下蝲地址Q?

http://nchc.dl.sourceforge.net/sourceforge/openvpn/openvpn-2.0_rc17-install.exe

安装Ҏ(gu)很简单,和其它windows下的软g无异?

我安装到c:\program file\openvpn下?

在config中徏立配|文件win.ovpn

代码:

Client

dev tun

proto udp

remote VPNSERVER1 1194

resolv-retry infinite

nobind

persist-key

persist-tun

ca ../keys/ca.crt

cert ../keys/win.crt

key ../keys/win.key

comp-lzo

verb 3

mute 20

从server中生成ca.crt ,win.crt,win.key文gq拷贝到windows上。生成文件的Ҏ(gu)请参考章?.5.1.3?

在命令行q行Q?

openvpn --config win.ovpn

如果要将openvpn做成服务Q运行:(x)

openvpnsev.exe -install

q样可以在服务中找到openvpn服务了?

当openvpn作ؓ(f)服务Ӟ?x)到config文g夹寻找ovpn后缀的配|文件。生成的日志?x)放在log文g夹中?

6补充QBY yazjiyao/yzjboy

如果用openvpn-2.0_rc16.tar.gz在configure的时候遇C如错误,我们用rpm包安装,

configure: checking for OpenSSL SSL Library and Header files...

checking openssl/ssl.h usability... no

checking openssl/ssl.h presence... no

checking for openssl/ssl.h... no

configure: error: OpenSSL SSL headers not found.

W一步:(x)下蝲用所需的rpm包:(x)

openssl-0.9.6g-1.i386.rpm(其他版本不可?

openssl-devel-0.9.6g-1.i386.rpm (其他版本不可?

lzo-1.08-3.i386.rpm

openvpn-2.0.2-1.i386.rpm

W二步:(x)安装低版本的openssl包,在linux 9pȝ是openssl-0.9.7a-2.i386.rpm和openssl-devel-0.9.7a-2.i386.rpm Q不要删除啊Q不然系l会(x)出错严重点可能系l都无法启动Q,那么我们通过rpm ?-force参数来安装低版的openssl

rpm -ivh --force openssl-0.9.6g-1.i386.rpm

rpm -ivh --force openssl-devel-0.9.6g-1.i386.rpm

W三步:(x)四个rpm安装完毕后,把client.conf或server.conf攑֜/etc/openvpn/目录下就行了Q其他配|跟上面差不多,q里׃再说明了?

W四步:(x)然后Q?etc/rc.d/init.d/openvpn stsart|stop|restart 成功Q?br />(e129)



冰河快狼 2006-04-27 08:58 发表评论
]]>
开攑֎代码?Qmail+Mysql+Jsp 中文?sh)子邮局pȝ说明http://www.tkk7.com/jelver/articles/33186.html冰河快狼冰河快狼Thu, 02 Mar 2006 05:46:00 GMThttp://www.tkk7.com/jelver/articles/33186.htmlhttp://www.tkk7.com/jelver/comments/33186.htmlhttp://www.tkk7.com/jelver/articles/33186.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/33186.htmlhttp://www.tkk7.com/jelver/services/trackbacks/33186.html阅读全文

冰河快狼 2006-03-02 13:46 发表评论
]]>
RedHat9.0 + OpenVPN2.0 +CA实现安全的VPN http://www.tkk7.com/jelver/articles/33184.html冰河快狼冰河快狼Thu, 02 Mar 2006 05:38:00 GMThttp://www.tkk7.com/jelver/articles/33184.htmlhttp://www.tkk7.com/jelver/comments/33184.htmlhttp://www.tkk7.com/jelver/articles/33184.html#Feedback0http://www.tkk7.com/jelver/comments/commentRss/33184.htmlhttp://www.tkk7.com/jelver/services/trackbacks/33184.html阅读全文

冰河快狼 2006-03-02 13:38 发表评论
]]>
用OpenVPN构徏安全VPN [OpenVPN + CA] Q{Q?/title><link>http://www.tkk7.com/jelver/articles/33180.html</link><dc:creator>冰河快狼</dc:creator><author>冰河快狼</author><pubDate>Thu, 02 Mar 2006 05:23:00 GMT</pubDate><guid>http://www.tkk7.com/jelver/articles/33180.html</guid><wfw:comment>http://www.tkk7.com/jelver/comments/33180.html</wfw:comment><comments>http://www.tkk7.com/jelver/articles/33180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jelver/comments/commentRss/33180.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jelver/services/trackbacks/33180.html</trackback:ping><description><![CDATA[     摘要: 用OpenVPN构徏安全VPN [OpenVPN + CA] Q{Q一直想写一片关于VPN配置斚w的文章,׃旉{等很多问题Q一直没有落实,现在l于和大家见面了Q由于本人知识有限也q专业从事q方面工作的Q难免有错误Q望指正Q共同提高?自从认识VPN以来Q一直在扑֯一个容易配|、功能强大、支持多pȝ的VPNE序Q由于一直没有找到合适的软gQLinux下的FreeSWAN、OpenBSD Fre...  <a href='http://www.tkk7.com/jelver/articles/33180.html'>阅读全文</a><img src ="http://www.tkk7.com/jelver/aggbug/33180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jelver/" target="_blank">冰河快狼</a> 2006-03-02 13:23 <a href="http://www.tkk7.com/jelver/articles/33180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://bisi666.com" target="_blank">þAV뾫Ʒɫҹ</a>| <a href="http://266hd.com" target="_blank">޸Ʒһ</a>| <a href="http://gzbaida.com" target="_blank">ѹۿ</a>| <a href="http://zbsensor.com" target="_blank">þþƷվ</a>| <a href="http://44jjy.com" target="_blank">Ļ޾Ʒ</a>| <a href="http://xianliwang.com" target="_blank">߹ۿƵ</a>| <a href="http://k5nn.com" target="_blank">ղһ</a>| <a href="http://conghui8.com" target="_blank">˿ҺƵ</a>| <a href="http://alodaba.com" target="_blank">ëƬ18ŮëƬƵδ</a>| <a href="http://masfd.com" target="_blank">7777þĻ</a>| <a href="http://www398ph.com" target="_blank">aëƬ</a>| <a href="http://chuoche.com" target="_blank">AVӰԺۿ</a>| <a href="http://zhuoyueyc.com" target="_blank">AëƬѹۿAVվ</a>| <a href="http://woaianli.com" target="_blank">avר</a>| <a href="http://345504.com" target="_blank">avëƬһ</a>| <a href="http://xixidhw.com" target="_blank">avƬ߹ۿ</a>| <a href="http://gdfcjzx.com" target="_blank">þѿaëƬ</a>| <a href="http://606059.com" target="_blank">91|</a>| <a href="http://www-741.com" target="_blank">ѹҹ</a>| <a href="http://www48646.com" target="_blank">һѲƵƬ</a>| <a href="http://www-15706.com" target="_blank">þþþAVרվ</a>| <a href="http://508009.com" target="_blank">þ޾Ʒav</a>| <a href="http://zjszbwzl.com" target="_blank">ɫһɫһ</a>| <a href="http://gisdn.com" target="_blank">ǴýƵѹۿ</a>| <a href="http://sqmdjz.com" target="_blank">޾Ʒ</a>| <a href="http://wxyz2.com" target="_blank">100ëƬȫ</a>| <a href="http://chenglide.com" target="_blank">Ļþ2020 </a>| <a href="http://91packing.com" target="_blank">޹һ˾þþƷ</a>| <a href="http://chch12.com" target="_blank">þ99ۺϾƷ</a>| <a href="http://glhrsydc.com" target="_blank">ۺһ</a>| <a href="http://laochedao.com" target="_blank">߲</a>| <a href="http://qnyjny.com" target="_blank">߹ۿƵ</a>| <a href="http://zjhmpaper.com" target="_blank">avþDz</a>| <a href="http://5r7b.com" target="_blank">Ƭ91Ʒѹۿ</a>| <a href="http://918989b.com" target="_blank">AVŷAVվ</a>| <a href="http://jiujiujingpin.com" target="_blank">Ʒվa</a>| <a href="http://43sihu.com" target="_blank">ްɫɫ߲</a>| <a href="http://carsmp.com" target="_blank">һ</a>| <a href="http://jaubus.com" target="_blank">ҹɫ˽ӰԺվӰ </a>| <a href="http://by33321.com" target="_blank">޾Ʒվ߲</a>| <a href="http://seosuanfa.com" target="_blank">ëƬa߹ۿ67194</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>