不能用outlook发信?(freebsd sendmail)

在女朋友家用adsl不能从公司的smtp发送邮件。为什么呢?问了老大才解决了这个低级问题。
原来ip没有被授权

解决方法:
添加ip到/etc/mail/access
然后生成map文件
# makemap hash /etc/mail/access.map < /ec/mail/access  
Share

Mysql 主从镜像机制[freebsd]

测试用例
 
主机和从机配置完全一样。环境vm5.5.3 Freebsd6.2 Mysql-5.1.4
 
master : 192.168.1.71
slave  : 192.168.1.72
 
mysql是ports默认设置安装的
数据文件在/var/db/mysql/下
 
1.主机配置
#mysql -u root -p
#Enter password:
 
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO seven@192.168.1.72 IDENTIFIED BY 'seven';
mysql> flush tables with read lock;
mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000035 |      106 |              |                  |
+——————+———-+————–+——————+
1 row in set (0.01 sec)
记下file & position
 
mysql>exit
#/usr/local/etc/rc.d/mysql_server stop
 
#ee /etc/my.cnf
 
[mysqld]下
server-id=1
log-bin=mysql-bin #log文件名
 
2.从机配置
 
#ee /etc/my.cnf
[mysqld]下
server-id=2
 
重启mysql
#mysql -u root -p
#Enter password:
 
mysql>CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.71',           — 主服务器名或IP地址
    ->     MASTER_USER='seven',             
    ->     MASTER_PASSWORD='seven',
    ->     MASTER_LOG_FILE='mysql-bin.000035',    — 日志名
    ->     MASTER_LOG_POS=106;                    — 显示偏移量     
mysql>START SLAVE;                                — 启动从服务器线程
 
—–重启2台服务器—–
 
******测试*****
在主服务器(1.71)数据库上做如下操作:
mysql> show processlist\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: seven
   Host: 192.168.1.72:56493
     db: NULL
Command: Binlog Dump
   Time: 510
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
2 rows in set (0.01 sec)
 
在从服务器(1.72)数据库上做如下操作:
 
mysql> show processlist\G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 577
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 451
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 3
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
3 rows in set (0.01 sec)
 
还可以使用。。。。
 
查看主机状态
mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000022
        Position: 453
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
 
查看从服务器状态
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.71
                  Master_User: seven
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000022
          Read_Master_Log_Pos: 453
               Relay_Log_File: bsd_s-relay-bin.000009
                Relay_Log_Pos: 598
        Relay_Master_Log_File: mysql-bin.000022
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 453
              Relay_Log_Space: 898
         &nbs
p;    Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 2013
                Last_IO_Error: error connecting to master 'seven@192.168.1.71:3306' – retry-time: 60  retries: 86400
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)
 
Share

忘记mysql密码?[freebsd]

#killall mysqld
#/usr/local/bin/mysqld_safe –skip-grant-tables &
#mysql

mysql>use mysql
mysql>update user set password=password("root") where user="root";
mysql>flush privileges;
mysql>exit
 
#killall mysqld
 
#/usr/local/etc/rc.d/mysql_server start
 
#mysql -u root -p
#Enter password: root
mysql>
Share

apache 不能启动[Freebsd]


启动 httpd 时出现
Starting httpd: httpd: apr_sockaddr_info_get() failed for MYHOST
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.
 
这个问题是没有在 /etc/httpd/conf/httpd.conf 中设定 ServerName ,
所以它会用主机上的名称来取代,首先会去找/etc/hosts中有没有主机的定义
解决方式:
1.设定 ServerName
2.在 /etc/hosts 中填入主机名MYHOST:
 
>ee /etc/hosts
 
127.0.0.1 localhost.localdomain localhost MYHOST
 
 
Share

更改ssh端口[Freebsd]

配置文件位置
/etc/ssh/sshd_config
 
在配置文件中搜索 Port
 
修改为
 
Port 2222
 
*2222为我要修改的当前端口,确保没有被使用。ssh原来的默认端口是22

 
Share

FreeBSD 利用 ports 安装与配置 apache,mysql,php

首先申明,本帖非原创,但也不是转帖,是本人结合网络搜集的资料与自己实际安装操作过程中总结所得.那么就让我代表广大爱好者向那些站在我们脚下的巨人以及那些能抽出时间为我们写总结的人们致敬吧,因为在本人实践中深切地体会到他们的伟大与能够在百忙与他人分享经验的难能可贵.本帖适合新手或安装过程中出现同类问题的同志们参考,高人可以跳过了;但若能留下指点,自是不胜感激了.

众所周知,FreeBSD 提供了软件的 ports 安装方式, 可以很方便的定制安装所需要的应用软件.当我们装好系统之后,当然首先想到是配置 web 服务器,FreeBSD 默认标准安装并没有安装 apache,mysql 和 php,所以就要亲自动手安装了.ports 安装方式的好处在于,不会像 LINUX 那样,由于一个依懒包或者库文件而导至不得不到处找依懒包或库文件,下载下来全部装好再来装需要安装的软件;因为它会自动下载并安装依懒包或库文件,当然也不是每次都成功的,毕竟每个人遇到的错误可能是千奇百怪的.尽管网络上关于这方面的东西一搜一大堆 ,但个人认为好多都只是概念性的,但手册毕竟不是万能的;所以本人结合网摘与自己在安装过程遇的问题以及对问题的分析与解决来清晰的描述整个安装过程.

测试机环境:%uname -aFreeBSD http://www.myfreebsd.cn/6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 11 11:11:11 UTC 2007 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386

言归正传(安装系统不在讨论之列),开始我们的令人兴奋不已的征程吧.

1.apache 的安装与配置apache 给人感觉不光是稳定,还有亲切.之前偶在 RedHat 下手工编译安装过,相当顺利.这次用 ports 安装,同样的顺畅.

%whereis apache22apache22: /usr/ports/www/apache22 %cd /usr/ports/www/apache22%su /*取得管理员权限*/Password:www#make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean

上面是手工指定编译选项,其实也可用以下命令来通过一个简易图形化界面选择编译选项:www# make config选择好选项 OK ,然后再www# make install clean

现在来配置 apache.www# cd /usr/local/etc/apache22/ /*apache 配置文件的目录*/www# cp httpd.conf httpd.conf.bak /*备份文件,以防不测*/www# vi httpd.conf /*编辑配置文件*/ 以下有改动的地方,当然您要是对 apache 相当熟悉了,可以略过了.(比如默认的服务器目录是 /usr/local/www/apache22/data ,可以根据需要设置.相关的配置文件忒多了.只要记得对应修改就行了.)…#管理员的电子邮箱;ServerAdmin hy0kle@gmail.com…#服务的名称,若没有 DNS 域名最写作主机的 IP;ServerName 192.168.0.226:80…#反正装了 PHP 后要回来设置的,不如一次性写好了.^_^添加对 PHP 的支持;偶当时少写了一个 d ,导至 apache 无法解析 PHP 文件,提示要下载文件;网有网友少写 / ;小小的疏忽造成的后果是花在量时间排错; DirectoryIndex index.html index.php…AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps…

设置为开机自动运行.www# vi /etc/rc.conf#添加下面这句后保存退出;apache22_enable=”YES”

启动 apache.www# cd /usr/local/etc/apche22/rc.d/www# ./apache22 start

Now,激动人心的时间到了,打开浏览器,输入 http://127.0.0.1/http://localhost 回车.如果看到大大的”It works!”字样,那么恭喜了,apache 安装成功了.

2.安装 mysqlmysql 对我来说有阴影.大四的时候,我一同学在 FreeBSD 下安装 mysql 的次数绝对不下于我在 BSD 下安装五笔[scim]所尝试的次数(几乎方试遍了我所能找到的方法,要不是爱迪生的精神支持着我,怕就放弃了,只不过他在发明,我在发现.最终还是尝到了成功的喜悦).故安装的时候并没有”吊以轻心”.但是安装过程还是出了问题,出错信息当时忘了记录了,大致意思是 mysql-client 已经存在,但版本不一致, 无法安装.因为之前我安装过 KDE 桌面,而 mysql-client-5.0 作为一个依懒包已经安装上了.于是为为防止强制安装造成无法使用,而且最新版本不一定就好于旧版本(有点吃不到葡萄说葡萄酸的嫌疑^*^),所以我退而求其次了,没有装 5.1 ,改装 5.0 了.

%cd /usr/ports/databases/mysql50-server/%suPassword:www# make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean 同样, mysql 也有简易图形化编译选项设置;www# make config选择好选项 OK ,然后再www# make install clean

等待一会儿了…如果没有报错回到提示符,那就说明是好消息了,恭喜! mysql 也安装成功了,下面就设置它也为开机启动吧. www# rehash /*刷新一下系统*/www# vi /etc/rc.conf#添加下面的选项后保存退出;mysql_enable=”YES”

OK,来启动 mysql 吧.www# cd /usr/local/etc/rc.d/wwww# ./mysql-server start如果不出意外,现在 mysql 已经启动了,那么就怀着得意的心情测试一下吧:www# mysql理论上会出现 mysql 的提示符.:)

3.安装 phpcome on.当初以为 php 应该不会再有什么问题了吧,可结果装了两次才算完全成功.第一次安装时 php 的扩展选项不怎么搞的没有编译进去,运行 phpMyAdmi 时报错.打印出 phpinfo 和查看 apache 配置文件时才发现, apache 根本就没有加载 php 扩展模块.于是只好卸载了重装了一遍 php.如果遇到无法卸载,想要强制重新安装,可以用以下命令:# make install FORCE_PKG_REGISTER=”yes”

OK,开始吧.%cd /usr/ports/lang/php5%suPassword:www# make config#记得一定要选中 APACHE22 ,否则 apache 不认 php 文件,会提示你让你下载文件. OK www# make install clean

又是等待…如果无报错,回到提示符时,则 php 已经安装了,但是还没有扩展库.

www# rehashwww# cd /usr/ports/lang/php5-extensionswww# make config/* php 的扩展库,如 GD,FTP,ZLIB,SESSION,PDF,MYSQL,HASH等等了,按需要定制吧. OK */www# make install clean

如果不出什么意外,就等着收获成功的喜悦吧.不过,现在还不算完.

www# rehash www# cd /usr/local/etc/rc.d/www# ./apache22 restartwww# cd /usr/local/etc/www# cp php.ini-dist php.ini www# vi php.ini/*配置 php.ini,想必到这儿所有都已经不成问题了.还是那句话,按需配置吧;保存并退出.*/…safe_mode_gid = Off…www# rehashwww# cd /usr/local/etc/rc.d/www# ./apache22 restart

Share

freebsd6.0+apache2.2.0+mysql5.1.7+php5.1.2

操作系统以及版本:freebsd6.0+apache2.2.0+mysql5.1.7+php5.1.2

一、安装mysql51

先添加mysql组和mysql用户

QUOTE:pw addgroup mysqlpw adduser mysql开始安装

QUOTE:cd /usr/ports/databases/mysql51-server/ make install clean # n长的编译过程 rehash cp /usr/local/share/mysql/my- large.cnf /etc/my.cnf #服务器内存1G,但是与apache在一起/usr/local/share/mysql下面有5个my-xxxx.cnf文件my-small.cnf 最小配置安装,内存<=64M,数据数量最少my-large.cnf 内存=512Mmy-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存 my-huge.cnf 1G<内存<2G,服务器主要运行mysqlmy-innodb-heavy-4G.cnf 最大配置安装,内存至少4G QUOTE:mysql_install_db -u mysql ; mysqld_safe -u mysql & #建立数据库目录二、安装apache22+php5 QUOTE: cd /usr/ports/www/apache22/ make install clean cd ../mod_php5 make install clean 配置/usr/local/etc/apache/httpd.conf:加入 QUOTE:AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps #可不加 *注意:第二行主要为查看php代码用,加上的话web目录下的所有扩展名为.phps的文件在被浏览器访问时都显示其源代码,我安装的时候就加了,但少了.phps的s,之后郁闷了半天 QUOTE:DocumentRoot “/usr/local/www/apache22/data” 这两个是你的主页目录,可以根据自己需要跟改,要一致。

QUOTE: Options Indexes FollowSymLinks去掉Indexes可以限制浏览你的主页目录

QUOTE:rehash apachectl start echo “” > /usr/loacl/www/data/info.php 可能你的apache启动的时候和我一样会报这样的错误:

QUOTE:[Wed Apr 12 21:48:09 2006] [warn] (2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter我在google上找到了解决办法,执行如下操作:

QUOTE:kldload accf_http

grep accf /boot/defaults/loader.confaccf_data_load=”NO” # Wait for data accept filteraccf_http_load=”NO” # Wait for full HTTP request accept filter #将这个”NO”改成”YES” 但是为什么这样做还不知道,而且这个accf是做什么用的也不知道,还请大侠们来解释一下。

访问http://服务器的IP/info.php,如果有php的说明文件说明基本的php+apache2已经工作正常!

php5扩展功能安装

QUOTE:cd /usr/port/lang/php5-extensions/ make install clean #如果第一次安装会出现提示框,否则先make conf设置 选择需要的模块,当然也可以选择必须的,日后再添加。

apachectl restart 如果http://服务器ip/info.php有改动,恭喜你!安装成功!!

后续工作:

QUOTE:echo ‘ mysql_enable = “YES” ‘ >> /etc/rc.conf echo ‘ apache22_enable=”YES” ‘ >> /etc/rc.conf 以便开机后自动启动mysql apache

Share

普通用户执行su提示su:Sorry

运行su切换到root的,只有属于wheel组的用户,才能成功的切换到root,否则会出现su:sorry(或相似)的错误提示。所以解决对策是编辑/etc/group 文件,在wheel出现的那行末尾添加用户名,多个用户名以“,”分割

Share

Linux中文件查找技术大全


 每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的
文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘
中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只
要在桌面上点击”开始”-”搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至
在INTERNET上查找各种文件,文档。

可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻
烦的事情。毕竟在Linux中需要我们使用专用的”查找”命令来寻找在硬盘上的文件。
Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式
那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易
查找到。Linux中查找文件的命令通常为”find”命令,”find”命令能帮助我们在使用,
管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,”find”
命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,
在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能
找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬
盘位置和文件目录就有了很大的改变,如果不学会使用”find”命令,那么在成千上万
的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通”find”命
令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的”find”命令的全部使用
方法和用途。

通过文件名查找法:

这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在
单个的文件夹里面,只要使用常见的”ls"命令就能方便的查找出来,那么使用”find”
命令来查找它就不能给你留下深刻的印象,毕竟”find”命令的强大功能不止这个。如
果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的
文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至
在系统的某个地方也不知道,则这是可以使用如下命令:

find / -name httpd.conf

这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求
系统按照文件名查找,最后写上httpd.conf这个目标文件名即可 。稍等一会系统会
在计算机屏幕上显示出查找结果列表:

etc/httpd/conf/httpd.conf

这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。

如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行
find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时
只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这
个配置文件了。

无错误查找技巧:

在Linux系统中”find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理
员的专利。但是普通用户使用”find”命令时也有可能遇到这样的问题,那就是Linux系
统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有
权限用”find”命令来查询这些目录或者文件。当普通用户使用”find”命令来查询这些
文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到
你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找
文件,输入
find / -name access_log 2>/dev/null

这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误
的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输
送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这
样查询到的错误信息将被转移了,不会再显示了。

在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中
查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,
文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,
那么只要在这个目录中往下找就能节省很多时间了。使用find /etc -name httpd.conf
就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。
这里再说明一下”/ “这个函数符号的含义,如果输入 “find/ “就是表示要求Linux系
统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而”find/etc”就是只
在 etc目录下查找文件。因为”find/etc”表示只在etc目录下查找文件,所以查找的
速度就相应要快很多了。

根据部分文件名查找方法:

这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文
件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。例如我们知道某个
文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现
的,输入:

find /etc -name '*srm*'

这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,
比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件
是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:

find/etc -name 'srm*'

这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符
合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。

根据文件的特征查询方法:

如果只知道某个文件的大小,修改日期等特征也可以使用”find”命令查找出来,这和
WINDOWS系统中的"搜索"功能是基本相同的。在微软的"搜索"中WINDOWS中的"搜索助理"
使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在
Internet 上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中
所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标准。
例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文
本的文件。如果用户正使用 Active Directory,这时还可以搜索带有特定名称或位置的
打印机。

例如我们知道一个Linux文件大小为1,500 bytes,那么我们可是使用如下命令来查询
find / -size 1500c,字符 c 表明这个要查找的文件的大小是以bytes为单位。如果
我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。
例如我们输入find/ -size +10000000c 这个命令,则标明我们指定系统在根目录中查找
出大于10000000字节的文件并显示出来。命令中的”+”是表示要求系统只列出大于指定
大小的
文件,而使用”-“则表示要求系统列出小于指定大小的文件。下面的列表就是在
Linux使用不同” find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux
中使用”find"命令的方式是很多的,” find"命令查找文件只要灵活应用,丝毫不必在
WINDOWS中查找能力差。

find / -amin -10 # 查找在系统中最后10分钟访问的文件
  find / -atime -2 # 查找在系统中最后48小时访问的文件
  find / -empty # 查找在系统中为空的文件或者文件夹
  find / -group cat # 查找在系统中属于 groupcat的文件
  find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  find / -nouser #查找在系统中属于作废用户的文件
  find / -user fred #查找在系统中属于FRED这个用户的文件

下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有
列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
  -amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变状态的文件
  -ctime n
  查找系统中最后n*24小时被改变状态的文件
  -empty
  查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
  -false
  查找系统中总是错误的文件
  -fstype type
  查找系统中存在于指定文件系统的文件,例如:ext2 .
  -gid n
  查找系统中文件数字组 ID 为 n的文件
  -group gname
  查找系统中文件属于gnam文件组,并且指定组和ID的文件

Find命令的控制选项说明:

  Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的
最基本,最常用的find命令的控制选项及其用法。
  选项
  用途描述
  -daystart
  .测试系统从今天开始24小时以内的文件,用法类似-amin
  -depth
  使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
  -follow
  遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
  -help
  显示命令摘要
  -maxdepth levels
  在某个层次的目录中按照递减方法查找
  -mount
  不在文件系统目录中查找, 用法类似 -xdev.
  -noleaf
  禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
  -version
  打印版本数字

使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,
否则一般情况下find命令将忽略通配符链接方式进行文件查找。

-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文

件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。
例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如
下命令

find . -maxdepth 2 -name fred

假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找
很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查找
到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的
文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个
文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找
成功。

使用混合查找方式查找文件

find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字
节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来
组合成一个混合的查找方式。

find /tmp -size +10000000c -and -mtime +2

学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示”与”和”或”
的关系。在Linux系统的查找命令中一样通用。

还有这样的例子,

find / -user fred -or -user george

我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。

在find命令中还可以使用”非”的关系来查找文件,如果我们要在/tmp目录中查找所有
不属于panda的文件,使用一个简单的

find /tmp ! -user panda

命令就可以解决了。很简单。

查找并显示文件的方法

查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果
我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以
把这两个命令结合起来使用。

find / -name "httpd.conf" -ls

系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。

12063 34 -rw-r–r– 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf

下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法

选项
  用途描述
  -exec command;
  查找并执行命令
  -fprint file
  打印文件完整文件名
  -fprint0 file
  打印文件完整文件名包括空的文件
  -fprintf file format
  打印文件格式
  -ok command;
  给用户命令执行操作,根据用户的Y 确认输入执行
  -printf format
  打印文件格式
  -ls
  打印同种文件格式的文件.

Share

vhost 配置

#举例说明。

#此例目的在于用不同的域名访问同一ip下的不同目录层次
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/ >
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
 
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
 
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#

    ServerAdmin webmaster@dummy-host.localhost
#文件目录
    DocumentRoot c:/wamp/www
#服务名-我理解为主域名
    ServerName seven.com
#别名-这里是关键了在这里设定子域名
    ServerAlias www.seven.com
    ErrorLog logs/dummy-host.localhost-error_log
    CustomLog logs/dummy-host.localhost-access_log common
 

    ServerAdmin webmaster@dummy-host.localhost
    DocumentRoot c:/wamp/www/sns/public_html
    ServerName seven.com
    ServerAlias sns.seven.com
    ErrorLog logs/dummy-host.localhost-error_log
    CustomLog logs/dummy-host.localhost-access_log common
 #以上配置使 www.seven.com访问www下文件  sns.seven.com访问 www/sns/public_html下文件 

Share