月度归档:2012年07月

bind nsupdate动态dns更新

注: 可用 ixfr+nsupdate+rndc 更新域

    rndc reconfig;

    rndc reload

 

nsupdate是一个动态DNS更新工具.可以向DNS服务器提交更新记录的请求.它可以从区文件中添加或删除资源记录,而不需要手动进行编辑区文件.
下面是使用方法:

nsupdate [ -d ] [ [ -y keyname:secret ] [ -k keyfile ] ] [ -v ]
[ filename ]

-d 调试模式.

-k 从keyfile文件中读取密钥信息.

-y keyname是密钥的名称,secret是以base64编码的密钥.

-v 使用TCP协议进行nsupdate.默认是使用UDP协议.

输入格式:
nsupdate可以从终端或文件中读取命令.每个命令一行.一个空行或一个”send”命令,则会将先前
输入的命令发送到DNS服务器上.

命令格式:
server servername [ port ]
发送请求到servername服务器的port端口.如果不指定servername,nsupdate将把请求发送给
当前去的主DNS服务器.
如:
> server 192.168.0.1 53

local address [ port ]
发送nsupdate请求时,使用的本地地址和端口.

zone zonename
指定需要更新的区名.

class classname
指定默认类别.默认的类别是IN.

key name secret
指定所有更新使用的密钥.

prereq nxdomain domain-name
要求domain-name中不存在任何资源记录.

prereq yxdomain domain-name
要求domain-name存在,并且至少包含有一条记录.

prereq nxrrset domain-name [ class ] type
要求domain-name中没有指定类别的资源记录.

prereq yxrrset domain-name [ class ] type
要求存在一条指定的资源记录.类别和domain-name必须存在.

update delete domain-name [ ttl ] [ class ] [ type [ data... ] ]
删除domain-name的资源记录.如果指定了type和data,仅删除匹配的记录.

update add domain-name ttl [ class ] type data…
添加一条资源记录.

show
显示自send命令后,所有的要求信息和更新请求.

send
将要求信息和更新请求发送到DNS服务器.等同于输入一个空行.

nsupdate示例:
# nsupdate
> server 127.0.0.1
> update delete www.centos.bz A
>
> update add www.centos.bz 80000 IN A 192.168.0.2
> update add 2.0.168.192.in-addr.arpa 80000 PTR A www.centos.bz
> send
> quit

 

---------------------------------------------------------------------------------------------

LAMP+bind9下实现DDNS

生成文件,并调用命令nsuodate -v filename来实现ddns。
1 lamp安装
这个就不用多说了,我安装的是ubuntu的6.0.6.1server+mysql+php
apt-get到最新版
2 webmin
俺linux刚刚入门,好多命令行还不熟。服务器不安装gui,用用webmin算是gui吧。
3 php-cli
没有安装?用apt-get 安装。
4 bind9及配置
用webmin配置bind
4.1 创建新的主区域(zone)比如cags.org.cn
4.2 修改named.conf.local 在zone cags.org.cn添加这么一行:

allow-update {127.0.0.1;};

意思是这个zone在本地可以update。
5 mysql建表
用5个字段实现最基本的功能
id 自增类型,当主键也当dns的序号用
user 用户名
pass 密码
time 更新的时间
ip 客户端的ip
sql语句如下:
CREATE TABLE `ddns` (
`id` int(11) unsigned NOT NULL auto_increment,
`user` char(4) NOT NULL,
`password` char(41) NOT NULL,
`time` bigint(20) NOT NULL default '0',
`ip` char(15) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user`),
KEY `password` (`password`),
KEY `time` (`time`),
KEY `ip` (`ip`)
) ENGINE=MyISAM DEFAULT
6 php网页文件ddns.php(这个就不用注释了吧,跟大白话似的)
<?php
$user= $_REQUEST["user"];
$pass= $_REQUEST["pass"];
$time= time();
$ip = $_SERVER["REMOTE_ADDR"];

$link = @mysql_connect('localhost', 'root', '');
@mysql_select_db('ddns');

$query="select count(user) from ddns where user='";
$query.=$user;
$query.="' and password=password('";
$query.=$pass;
$query.="') group by user";

$result=@mysql_query($query);
$row = mysql_fetch_array($result,MYSQL_NUM);
if ($row[0]==1){
$query="update ddns set time=$time,ip='$ip' where user='$user'";
@mysql_query($query);
}
@mysql_free_result($result);
@mysql_close($link);
?>
建立完文件之后用http://ddns-server-ip/ddns.php?user=XXX&pass=YYY就可以获取客户端ip地址并记录到ddns表中,并且记下了客户端访问的时间。
7 php-cli文件
这个多废话几句:
7.1 所需要的记录都在ddns表中。在这里规定每隔60秒更新一次。
7.2 如果60秒客户端没有刷新的话,就更改其ip为127.0.0.1
7.3 生成nsupdate所需的文件。文件包括两部分:
7.3.1 失效的用户即ip为127.0.0.1的
7.3.2 有效的用户:更新时间在60秒之内并且ip不为127.0.0.1的
7.4 调用nsupdate命令
文件如下update.php:
#!/usr/bin/php
<?php
$time=time();

$link = @mysql_connect('localhost', 'root', '');
@mysql_select_db('ddns');

$handle = fopen("/tmp/file.txt", "w");
$str="server 127.0.0.1\r\n";
$str.="zone cags.org.cn\r\n";
@fwrite($handle,$str);

$query="select user,id,ip from ddns where $time-time>0 and $time-time<=60";
$result=@mysql_query($query);
while($row = @mysql_fetch_array($result,MYSQL_NUM)){
$str="update delete $row[0].cags.org.cn A\r\n";
$str.="update add $row[0].cags.org.cn $row[1] IN A $row[2] \r\n";
@fwrite($handle, $str);
}

$query="update ddns set ip='127.0.0.1' where $time-time>60";
@mysql_query($query);

$query="select user,id,ip from ddns where ip='127.0.0.1'";
$result=@mysql_query($query);
while($row = @mysql_fetch_array($result,MYSQL_NUM)){
$str="update delete $row[0].cags.org.cn A\r\n";
$str.="update add $row[0].cags.org.cn $row[1] IN A $row[2] \r\n";
@fwrite($handle, $str);
}

$str="send \r\n";
@fwrite($handle,$str);
@fclose($handle);
exec('nsupdate -v /tmp/file.txt');

@mysql_free_result($result);
@mysql_close($link);
?>

8 定时执行文件php-cli
用webmin 添加corn 任务调度每分钟执行一次

9 用dig命令查看更新是否有效:
dig @127.0.0.1 cags.org.cn axfr

 

另一调用示例:

nsupdate -v << EOF
server 127.0.0.1
zone test.com
update delete test2.test.com
update delete test3.test.com
send
EOF

nsupdate -v << EOF
server 127.0.0.1
zone test.com
update add test2.test.com 30 IN A 127.0.0.2
update add test3.test.com 30 IN A 127.0.0.3
show
send
EOF

VNC 安装

1、安装
yum install vnc*
2、启动
/etc/init.d/vncserver start
Starting VNC server: no displays configured [ OK ]
3、配置用户名
CODE:[root@localhost ~]# vi /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# URL:http://www.uk.research.att.com/vnc/sshvnc.html

# VNCSERVERS="1:myusername"
VNCSERVERS="1:root" (注意:root是CentOS用户名)
如果建2个,可以用VNCSERVERS="1:root 2:linglong"来配置
3.用vncpasswd创建一个vnc的口令

注意这将同时在你的home目录下,创建一个隐藏的目录.vnc,其中有一个文件passwd保存着你的vnc口令.
CODE:
[root@localhost ~]# vncpasswd
Password:
Verify:
[root@localhost ~]# ls -d .vnc
.vnc
[root@localhost ~]# ls .vnc
passwd

 
----------------------------------------------------------------------

VNCServer配置
redhat 一般都自动安装了vncserver了 只要在服务列表中选中启动一下就可以.
通过编辑文件$HOME/.vnc/xstartup来启动你喜欢的窗口管理器。使用
startkde & 来启动KDE,使用 gnome-session & 来启动GNOME.

首次创建 ~/.vnc/xstartup 时,指定的窗口管理器是 twm ,它是一个极小的窗口管理器,几乎每台 X Window 系统机器上都有 twm。twm 不具备完整“桌面管理器”(象 KDE、GNOME 或 WindowMaker)的大部分花哨功能。下面是修改过的示例:

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/ .Xresources ]&& xrdb $HOME/.Xresources
xsetroot - solid grey
vncconfig - iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
#exec wmaker
#exec startkde

gnome-session &

上面的示例中,注释掉了缺省 twm 和 xterm 的缺省启动。配置了这个桌面来避免背景和标题栏上的颜色渐变,并使用极少的动画效果。

关闭服务器上自己的vnc连接
vncserver -kill :桌面号

开机自动运行vncserver
1.设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver.

2.编辑/etc/sysconfig/vncservers

VNCSERVERS="1:user1"
ARGS="-geometry 800x600 -alwaysshared "

在ARGS 中修改"800x600"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改 user1 为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:

VNCSERVERS="1:user1 2:user2 3:user3"

3.设置vnc server的访问密码
vncpasswd

在RedHat系统上,使用以下命令启动VNC:
/etc/init.d/vncserver start

----------------------------------------------2--------------------------------------------------

Linux系统远程桌面(VNC)配置方法

Linux默认安装了VNC服务,为了以后方便使用,可在ntsysv里设置vnc服务为开机自动启动。

如果系统安装了防火墙,建议关掉或者加入vnc的访问规则。(service iptables stop)

二、开始配置

命令:vncserver

第一次使用此命令会提示你输入访问口令,两次口令后,vncserver即可正常工作。

可以使用最常用工具VNC Viewer访问远程桌面了。

三、显示图形化界面

不知是出于什么考虑,第二步后无法看到图形化界面,但改起来超简单,修改一个参数就OK了。

用第二步时的用户登录,修改一下VNC的启动文件

vi .vnc/xstartup

将最后一行“twm &”修改为“gnome-session &”

重启vnc服务,kill掉刚才的进程,再新启一个VNC即可。

service vncserver restart

vncserver -kill :1

vncserver

======================================================

Xvnc in Linux RH6.2 problem


When you unzip vnc-3.3.3r1_x86_linux_2.0.tgz a folder called
vnc_x86_linux_2.0 is created.

First of all, that folder contains a readme file that explains everything I'm
about to tell you.:-)

There is only a couple of steps that need to be taken in linux before you can
./vncserver....

#1 Make sure that /usr/local/bin is in your path.  If it isn't add it to the
PATH statement in your .bash_profile.  A portion of your .bash_profile could
look like this ....
PATH=/usr/local/bin:$PATH:$HOME/bin

After you save this file you need to have your bash re-read it.  Type su -l
root.  To verify that you path is updated type echo $PATH

#2 cd to the vnc_x86_linux_2.0 directory.  Type the following
cp vncviewer vncserver vncpasswd Xvnc /usr/local/bin

#3 If you want to use the Java VNC viewer (http, 58xx) do the following
mkdir -p /usr/local/vnc/classes
cp classes/* /usr/local/vnc/classes

That's It!

Get back to /root and type vncserver not ./vncserver you will be prompted for
a password.

At this point vnc created a .vnc folder in your root directory.

You should be able to connect with no problem.

Nathan Lenz wrote:

> when running(as root):> ./vncserver> > I get the error:> vncserver: couldn't find "Xvnc" on your PATH.> > Is there any simple instructions on installing the vnc server on a default> linux instalation...> > Nathan Lenz> ---------------------------------------------------------------------> To unsubscribe, send a message with the line: unsubscribe vnc-list> to majordomo "at" uk.research.att.com> See also: http://www.uk.research.att.com/vnc/intouch.html > --------------------------------------------------------------------- --
Regards

CentOS/RedHat常用到的查看系统命令

# uname -a 
 
# 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
  www.2cto.com  
资源
# 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设备检测状况
 
网络
# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息
 
进程
# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态
 
用户
# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务
  www.2cto.com  
服务
# chkconfig --list       # 列出所有系统服务
# chkconfig --list | grep on    # 列出所有启动的系统服务
 
程序
# rpm -qa                # 查看所有安装的软件包

关键字高亮JS

        //高亮
        this.highlightKeys = searchData.content.split(' ');
        this.highlightLength = this.highlightKeys.length;
        this.highlights = [];
        this.highlightChilds($('tweetRegion').childNodes);
        this.highlightChilds($('searchTweetPageUserList').childNodes);
        $A(this.highlights).each(function(item) {
            var tag = document.createElement('span');
            item.tag.parentNode.replaceChild(tag, item.tag);
            tag.innerHTML = item.html;
        });



    highlightChilds: function(elements) {
        var length = elements.length;
        if (length == 0) return;
        var value = "";
        var i, j, exist;
        for (i = 0; i < length; i++) {
            if (elements[i].nodeType == 3) {
                value = elements[i].nodeValue.toString().trim();
                exist = false;
                if (value != "") {
                    for (j = 0; j < this.highlightLength; j++) {
                        if (value.indexOf(this.highlightKeys[j]) > -1) {
                            exist = true;
                            value = value.replace(this.highlightKeys[j], '<span style="color:#CA4004;">' + this.highlightKeys[j] + '</span>')
                        }
                    }
                    if (exist) {
                        this.highlights.push({ tag: elements[i], html: value });
                    }
                }
            }
            this.highlightChilds(elements[i].childNodes);
        }
    },