• Linux命令行下搜索文件-Find命令使用介绍

    Posted on 十二月 26th, 2007 inetdemon No comments

    linux命令行下查找文件的可以用Find命令,Find功能强大,还可以何xargs配合起来。例如,我要找/home/logs目录下比7天之前修改的owner为nobody的文件:

    find /home/logs -name access.log.* -mtime +7 -user nobody -maxdepth 1 -exec ls -l {} \;

    查找比my-test文件新,比my-test2的文件旧的普通文件并删除,删除前提示确认:

    find /home/logs -newer my-test ! -newer my-test2 -type f -ok rm {} \;

    时间选项

    -mtime -n +n
    按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项类似:
    -amin n
      查找系统中最后N分钟访问的文件
      -atime n
      查找系统中最后n*24小时访问的文件
      -cmin n
      查找系统中最后N分钟被改变文件状态的文件
      -ctime n
      查找系统中最后n*24小时被改变文件状态的文件
        -mmin n
      查找系统中最后N分钟被改变文件数据的文件
      -mtime n
      查找系统中最后n*24小时被改变文件数据的文件

    EXEC, OK和xargs

    使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便。exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个反斜杠\,最后是一个分号。为了使用exec选项,必要的话可同时使用print选项。

    -ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

    find /home/ -name *.gz -exec mv {} /data/archive/ \; 2> /dev/null

    find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去

    在当前目录下的所有nobody组用户拥有的普通文件中查找"hostname"
    # find . -type f -group nobody -print | xargs grep "hostname"
    回收读写权限
    # ls -l
    drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf
    # find . -perm -7 -print | xargs chmod o-w
    # ls -l
    drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

    本文参照了find的用法中文介绍,比较详细,还包含一定的例子。

  • Linux下常用的查看系统信息命令(转)

    Posted on 十二月 20th, 2007 inetdemon No comments

    # uname -a # 查看内核/操作系统/CPU信息
    # head -n 1 /etc/issue # 查看操作系统版本
    # cat /proc/cpuinfo # 查看CPU信息
    # hostname # 查看计算机名
    # lspci -tv # 列出所有PCI设备
    # lsusb -tv # 列出所有USB设备
    # lsmod # 列出加载的内核模块
    # env # 查看环境变量资源
    # free -m # 查看内存使用量和交换区使用量
    # df -h # 查看各分区使用情况
    # du -sh <目录名> # 查看指定目录的大小
    # grep MemTotal /proc/meminfo # 查看内存总量
    # grep MemFree /proc/meminfo # 查看空闲内存量
    # uptime # 查看系统运行时间、用户数、负载
    # cat /proc/loadavg # 查看系统负载磁盘和分区
    # mount | column -t # 查看挂接的分区状态
    # fdisk -l # 查看所有分区
    # swapon -s # 查看所有交换分区
    # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
    # dmesg | grep IDE # 查看启动时IDE设备检测状况网络
    # iptables -L # 查看防火墙设置
    # netstat -lntp # 查看所有监听端口
    # netstat -antp # 查看所有已经建立的连接
    # netstat -s # 查看网络统计信息进程
    # w # 查看活动用户
    # id <用户名> # 查看指定用户信息
    # last # 查看用户登录日
    # chkconfig –list # 列出所有系统服务
    # chkconfig –list | grep on # 列出所有启动的系统服务程序
    # rpm -qa # 查看所有安装的软件包

  • 301永久重定向

    Posted on 十二月 4th, 2007 inetdemon No comments

    为何要使用301重定向

    在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失。不仅如此,之前该页面的一切积累(比如PR值)就都白费了。

    301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值。

    如何进行重定向

    重定向方式有: 301 redirect, 302 redirect 与 meta fresh:

    * 301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
    * 302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
    * meta fresh: 这在以前比较流行,现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。

    Apache服务器实现301重定向

    在Apache中,可以通过设置.htaccess实现301重定向:

    Redirect permanent / http://www.sasacity.com/ ;将目录下内容重定向到http://www.sasacity.com/
    redirect permanent /old.html http://www.sasacity.com/new-url/ ;将网页old.html内容重定向到http://www.sasacity.com/new-url/

    通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考Apache手册。

    IIS服务器实现301重定向

    1 打开”internet信息服务管理器”,在需要重定向的网页或目录上按右键
    2 选中“重定向到URL”
    3 在对话框中输入目标页面的地址
    4 选中“资源的永久重定向”
    5. 点击“应用”

    在代码中进行重定向

    PHP下的301重定向

    <? Header( “HTTP/1.1 301 Moved Permanently” );
    Header( “Location: http://seo.learninchina.cn” );?>

    ASP下的301重定向

    <%@ Language=VBScript %>
    <% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, ” http://seo.learninchina.cn”>

    ASP .NET下的301重定向

    <script runat=”server”>
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = “301 Moved Permanently”;
    Response.AddHeader(”Location”,”http://seo.learninchina.cn”);
    }
    </script>

    配置完成后,要认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool – HTTP Status Codes Checker或网页重定向检查工具。