mysql定时自动备份

By admin, 2010年01月23日 6:14 下午

查看系统时间

date

编辑自动执行任务

crontab -e

编辑内容如下
15 18 * * * /home/mysqlbackup.sh

15是分钟 18是小时

/var/www/html/mysqlbackup.sh 脚本路径
附:MYSQL自动备份脚本 每次备份自动删除10天之前的数据

#!/bin/sh
filename=`date   +%Y%m%d`
myPath=”/home/mysqlbackup/$filename/”
if [ ! -d "$myPath" ]; then
    mkdir “$myPath”
fi
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
for dbname in $DBLIST
do
mysqldump -u root -p  $dbname | gzip > $myPath$dbname.gz
done

# rm old file before ten days
tendate=`date -d “-10 day”  +%Y%m%d`
filelist=`ls -p /var/www/html/mysqlbackup | grep / | tr -d /`
for fnames in $filelist
do
if [ "$fnames" -lt "$tendate" ]; then
rm -rf /var/www/html/mysqlbackup/$fnames
fi
done

mysql之my.cnf参数详解

By admin, 2010年01月23日 6:10 下午

调整MySQL运行参数,修改/etc/my.cnf文件调整mysql运行参数重启MySQL后生效,在MySQL4版本以后,一部分内部变量可以在MySQL运行时设置,不过重启MySQL就失效了。
mysqld程序–目录和文件
basedir      = path          # 使用给定目录作为根目录(安装目录)。
datadir      = path          # 从给定目录读取数据库文件。
pid-file     = filename      # 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);

[mysqld]
socket = /tmp/mysql.sock     # 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)
port             = 3306      # 指定MsSQL侦听的端口
key_buffer       = 384M      # key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。
索引块是缓冲的并且被所有的线程共享,key_buffer的大小视内存大小而定。
table_cache      = 512       # 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销
sort_buffer_size = 2M        # 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。
注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB
read_buffer_size = 2M        # 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
query_cache_size = 32M       # 指定MySQL查询结果缓冲区的大小
read_rnd_buffer_size    = 8M # 改参数在使用行指针排序之后,随机读用的。
myisam_sort_buffer_size =64M # MyISAM表发生变化时重新排序所需的缓冲
thread_concurrency      = 8  # 最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2
thread_cache            = 8  # #缓存可重用的线程数
skip-locking                 # 避免MySQL的外部锁定,减少出错几率增强稳定性。
[mysqldump]
max_allowed_packet      =16M # 服务器和客户端之间最大能发送的可能信息包

[myisamchk]
key_buffer   = 256M
sort_buffer  = 256M
read_buffer  = 2M
write_buffer = 2M

其他可选参数:
back_log = 384
指定MySQL可能的连接数量。
当MySQL主线程在很短时间内接收到非常多的连接请求,该参数生效,主线程花费很短时间检查连接并且启动一个新线程。
back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。
试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
max_connections = n
MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。超过限制后会报 Too many connections 错误
key_buffer_size = n
用来存放索引区块的RMA值(默认设置是8M),增加它可得到更好处理的索引(对所有读和多重写)
record_buffer:
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。
如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K)
wait_timeout:
服务器在关闭它之前在一个连接上等待行动的秒数。
interactive_timeout:
服务器在关闭它前在一个交互连接上等待行动的秒数。
一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。
默认数值是28800,可以把它改为3600。
skip-name-resolve
禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。
但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
log-slow-queries = slow.log
记录慢查询,然后对慢查询一一优化
skip-innodb
skip-bdb
关闭不需要的表类型,如果你需要,就不要加上这个

# > SHOW VARIABLES LIKE ‘%query_cache%’;
# > SHOW STATUS LIKE ‘Qcache%’;
如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;
如果Qcache_free_blocks的值非常大,则表明缓冲区中碎片很多。

##########################################
######      max_allowed_packet      ######
##########################################
通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。
在MySQL 5.1服务器和客户端之间最大能发送的可能信息包为1GB。
当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,了能回遇到“丢失与MySQL服务器的连接”错误。
客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。
如果你正在使用mysql客户端程序,其max_allowed_packet变量的默认值为16MB。要想设置较大的值,可用下述方式启动mysql:
mysql> mysql –max_allowed_packet=32M
它将信息包的大小设置为32MB。
服务器的默认max_allowed_packet值为1MB。如果服务器需要处理大的查询,可增加该值(例如,如果准备处理大的BLOB列)。例如,要想将该设置为16MB,可采用下述方式启动服务器:
mysql> mysqld –max_allowed_packet=16M

也能使用选项文件来设置max_allowed_packet。要想将服务器的该变量设置为16MB,可在选项文件中增加下行内容:
[mysqld]
max_allowed_packet=16M
增 加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。 该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。
如果你正是用大的BLOB值,而且未为mysqld授予为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。如果怀疑出现了该情况,请尝试在mysqld_safe脚本开始增加ulimit -d 256000,并重启mysqld。
##########################################
#####   MySQL怎样打开和关闭数据库表  #####
##########################################
table_cache, max_connections和max_tmp_tables影响服务器保持打开的文件的最大数量。如果你增加这些值的一个或两个,你可以遇到你的操作 系统每个进程打开文件描述符的数量上强加的限制。然而,你可以能在许多系统上增加该限制。请教你的OS文档找出如何做这些,因为改变限制的方法各系统有很 大的不同。
table_cache与max_connections有关。例如,对于200个打开的连接,你应该让一张表的缓冲至少有200 * n,这里n是一个联结(join)中表的最大数量。

windows服务器之间使用cwRsync备份

By admin, 2010年01月23日 6:04 下午

Windows下也有类似unix下的rsync软件,最近我试用了cwRsync软件,把配置和使用方法介绍一下,使用它确实比较方便!

        同步Rsync Server软件下载cwRsync_Server_2.0.10_Installer.zip

        同步Rsync Client软件下载cwRsync_Client_2.0.10_Installer.zip

   

    在需要传同步文件出来的windows服务器上安装同步Rsync Server软件cwRsync_Server_2.0.10_Installer后,

   

    会在服务器上建一个管理员级别的SvcwRsync用户,我们最好修改一下这个用户的密码。

   

    在此服务器上还增加了一个RsyncServer服务,如果没有设成自动启动,需要设置一下,如下图。   

   

   

    然后在安装了同步Rsync Server和Rsync Client软件的windows服务器上设置环境变量:   

   

   

 把目录C:\Program Files\cwRsyncServer\bin填加到当前用户的path里。

   

    同步Rsync Server上配置文件rsyncd.conf的一般格式类似:

###############################################################   

use chroot = false

strict modes = false

#hosts allow = 192.168.0.2

hosts allow = *

log file = rsyncd.log

pid file = rsyncd.pid

secrets file = password

# Module definitions

# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

#

[dbbackup]

path = /cygdrive/d/sqlserver_backup

read only = true

list = no

auth users = fengyu

transfer logging = yes

[test]

path = /cygdrive/d/ying

read only = true

list = no

auth users = ying

transfer logging = yes   

    

###############################################################   

    

  在Rsync Server的C:\Program Files\cwRsyncServer\目录下密码文件password里面内容如下:

fengyu:dbbackup_test

ying:maggie678

  这里面的用户名和密码可以任意设定,跟windwos和unix帐号没有任何关系。记住用冒号:分割用户名和密码

   在Rsync Client端写一个包含rsync命令的批处理程序rsync_test.bat

  

rsync -vzrtopg –progress –delete –password-file=/cygdrive/f/fengyu/password2 fengyu@192.168.0.10::dbbackup /cygdrive/f/fengyu/dbbackup_test  

   请注意在Rsync Client端windows服务器f:\fengyu\password2文件里只需要填写密码dbbackup_test,如下:

  

dbbackup_test  

  

   当然在unix机器上也可以用类似的方法获取在Windows服务器Rsync Server配置文件里设置好的同步文件夹

  

   rsync -vzrtopg –progress –delete –password-file=/home/ying/ying_passwd ying@192.168.0.10::test /home/ying/ying_test

  

   密码/home/ying/ying_passwd文件里也只需要填maggie678,如下:

  

maggie678     

   如果想把同步操作定时完成,可以在Windows服务器上设定任务计划,在unix机器上配置cron作业。

  

   最后管理员定期查看Rsync Server上的同步日志文件C:\Program Files\cwRsyncServer\rsyncd.log

  

   就知道同步是否正常运行了。

[转帖] Linux rsync命令实现备份

By admin, 2010年01月23日 5:59 下午

实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。

一、通过rsh或ssh命令

在没有建立rsync服务器的情况下,我们可以利用rsync命令直接进行快速的差异备份:

命令格式:

#rsync [option] 源路径 目标路径

其中:

[option]:

a:使用archive模式,等于-rlptgoD,即保持原有的文件权限

z:表示传输时压缩数据

v:显示到屏幕中

e:使用远程shell程序(可以使用rsh或ssh)

–delete:精确保存副本,源主机删除的文件,目标主机也会同步删除

–include=PATTERN:不排除符合PATTERN的文件或目录

–exclude=PATTERN:排除所有符合PATTERN的文件或目录

–password-file:指定用于rsync服务器的用户验证密码

源路径和目标路径可以使用如下格式:

rsync://[USER@]Host[:Port]/Path <–rsync服务器路径

[USER@]Host::Path <–rsync服务器的另一种表示形式

[USER@]Host:Path <–远程路径

LocalPath <–本地路径

1、同步客户端/home/test/abc目录中的文件到服务器端的/opt/htdocs目录:

/usr/bin/rsync -azv –delete /home/test/abc -e ssh www@192.168.1.200:/opt/htdocs/ //注意这里的区别/home/test/abc/ 和/home/test/abc

2、同步rsync服务器/opt/htdocs/目录中的文件到本地的/home/test/abc/:

/usr/bin/rsync -azv –delete rsync://linuxing@192.168.1.200/opt/htdocs /home/test/abc/

二、建立rsync服务器

当服务器没有开通ssh,或备份方没有ssh权限的时候,我们可以通过建立rsync服务器,进行匿名的数据同步。

1、服务端

主配置文件:

#vi /etc/rsyncd.conf

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

[test] #rsync区段的设定名称

path = /var/www/html/test #需要同步的数据存放路径

comment = test folder #注释

uid = apache #采用什么身份进行文件读取

gid = apache #同上,必须是有读取path权限的用户、组

ignore errors #忽略错误

read only = yes #只读

list = no #不能列表

auth users = linuxing #连接rsync服务的帐号

secrets file = /etc/rsyncd.secrets #指定存放帐号密码的位置

帐号密码文件:

#vi /etc/rsyncd.secrets

#格式:帐号:密码 (每行一组,帐号和密码用:号分开)

linuxing:backup

保存后,需要保证用户是root,权限是600

#chown root:root /etc/rsyncd.secrets

#chmod 600 /etc/rsyncd.secrets

启动服务:

#rsync –daemon

保证开机自动启动:

修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no

#sed -i -e “/disable/{ s/yes/no/ }” /etc/xinetd.d/rsync

#service xinetd.d restart

2、客户端

使用用法一中涉及到rsync://的方法即可。

如果rsync服务器需要密码验证,可以增加–password-file参数:

#rsync -azv –delete rsync://linuxing@192.168.1.100/test /var/www/html –password-file=/etc/test

#vi /etc/test

#指定访问密码

bakcup

#chmod 600 /etc/test

3、定时

另外,由于rsync客户端没有定时功能,我们可以通过在crontab中增加计划任务实现定时的同步,如:(不要使用-v参数,防止刷屏)

#crontab -e

0 22 * * 1-5 /usr/bin/rsync -az –delete rsync://linuxing@192.168.1.100/test /var/www/html –password-file=/etc/test

#指定星期一到五,每晚十点整进行同步

三、总结

使用rsync的优点:可通过ssh进行网络加密传输,也可以利用ssh客户端密钥建立信任关系。当在两台计算机之间保持大型、复杂目录结构的同步时候,比tar或wget等方式都要快。而且可以做到精确同步。

rsync更换端口

By admin, 2010年01月23日 5:46 下午

一般使用默认端口的话, 在服务端的启动命令为:
/usr/bin/rsync –address=192.168.1.23 –daemon
 
如果在客户端需要换另外的端口侦听, 则使用
/usr/bin/rsync –address=172.18.16.89 –port=8093 –daemon
 
客户端命令:
/usr/bin/rsync -vzrc –progress –bwlimit=300 /usr/local/tomcat/webapps/.gif 172.18.16.89::appLogo/
 
rsync: failed to connect to 172.18.16.89: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(107) [sender=2.6.8] 

此时在客户端也必须指定端口, 不然会报错。
改为/usr/bin/rsync -vzrc –port=8093 –progress –bwlimit=300 /usr/local/tomcat/webapps/.gif 172.18.16.89::appLogo/
就OK

用rsync从Linux到Windows远程备份

By admin, 2010年01月23日 5:43 下午

rsync是Linux系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。rsync的最新版本可以从http://rsync.samba.org/rsync/获得。它的特性如下: 

1、可以镜像保存整个目录树和文件系统。 

2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 

3、无须特殊权限即可安装。 

4、优化的流程,文件传输效率高。 

5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

 本文介绍了如何使用rsync服务从Linux到Windows进行远程备份。 

一、服务器端配置 

1.安装rsync包 

# rpm -q rsync 

rsync-2.6.3-1 

我们需要配置rsync,打开配置文件/etc/xinetd.d/rsyncd.conf(如果没有请创建它),修改相应的配置项:

disable = yes 修改为  disable = no

2.rsync只使用一个配置文件就是/etc/rsyncd.conf 

# vi /etc/rsyncd.conf 

内容如下: 

uid = nobody                     # 备份以什么身份进行,用户ID 

gid = nobody                     # 备份以什么身份进行,组ID 

#注意这个用户ID和组ID,如果要方便的话,可以设置成root,这样rsync几乎就可#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备

 #份的目录和文件即可。

 max connections = 4               # 最大连接数为4

 [www]                       # 指定认证的备份模块名

 path = /www                   # 需要备份的目录

 comment = BACKUP WWW      # 注释

 ignore errors                   # 忽略一些无关的IO错误

 read only = yes                 # 设置为只读

 list = no                       # 不允许列文件

 auth users = wwwuser            # 认证的用户名,如果没有这行,则表明是匿名

 hosts allow=220.122.133.31  #允许连接服务器的主机IP地址

 secrets file = /etc/wwwuser.pass     # 认证文件名,用来存放密码

 这一段我们修改完成。

 注意:如果同时还需要备份其它目录的话,可以直接在配置文件的后面继续增加配置内容,例如:

 [database]

 path = /var/lib/mysql

 ……

 这样就可以同时备份多个目录了。

实例代码如下:

uid = root

gid = root

use chroot = yes

max connections = 4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[data0_website]

path = /home/sites/compshop

auth users = root

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

3.修改配置文件属性

 #chmod 600 /etc/rsyncd.conf

 4.修改密码文件

 #vi /etc/rsyncd.secrets

 内容如下:

 root:lingtong

 5.修改密码文件属性

 #chmod 600 /etc/rsyncd.secrets

 4.启动服务

 #/usr/bin/rsync –daemon

 5.加入开机启动

 #echo “/usr/bin/rsync –daemon” >> /etc/rc.local

 6.检查rsync时候启动

 #ps -ef | grep rsync

 二、配置客户端

 同步Rsync Client软件下载cwRsync_Client_2.0.10_Installer.zip

 为了在Windows环境使用rsync工具,我们需要去下载cwRsync工具,这是一个rsync for windows的版本。

 下载安装完成之后的目录结构类似下图所示:

 

 然后在安装了同步Rsync Server和Rsync Client软件的windows服务器上设置环境变量:

 

 把目录C:\Program Files\cwRsyncServer\bin填加到当前用户的path里。

 现在我们可以在Windows环境下运行rsync工具了,举例使用下面的命令连接服务器并开始备份目录和文件:

 rsync -vzrtopgl –progress –port=8081 –delete root@192.168.1.1::backup /cygdrive/d/bak

 放在d:\bak目录下

 应该可以看到:

 password:

 要求输入密码的提示,正确输入密码后就应该看到开始备份了。当然,也有可能出现类似下面的错误信息:

 

 引起这种错误有几种可能性,一是你没有输入正确的用户名或密码,二是你的服务器端存储密码的文件没有正确的权限,也就是你的密码文件不是类似这样子的权限:-rw——-  1 root   root

 在备份完成之后,我们可以看到类似下图所示的状态:

 

如果要设置定时备份,只需要在Rsync Client端写一个包含rsync命令的批处理程序rsync_test.bat

加入如下代码: rsync -vzrtopgl –progress –port=8081 –delete root@192.168.1.1::backup /cygdrive/d/bak

加入任务计划就可以定时备份了。

Linux–VI使用指南

By admin, 2010年01月23日 2:14 下午

相信用过Linux的朋友一定不会对vi陌生吧,它是Linux环境中使用最为普遍的全屏幕编文本辑器。但由于我们一般用户最初接触的都是微软的产品,它和DOS下的EDIT和Windows下的记事本的使用方法不尽相似,所以另初学Linux朋友觉得vi很难用,甚至无从下手,下面我就向大家介绍vi的使用方法。
  首先需要说明的是,vi分为两种状态,即命令状态和编辑状态,在命令状态下,所键入的字符系统均作命令来处理,如:q代表退出,而编辑状态则是用来输入文字资料的。当你进入vi时,会首先进入命令状态。现在对vi也有了基本的认识,如果你有兴趣请接着往向看。
  要进入vi,直接在系统提示符下键入vi <文件名>,当你键入的文件名是已有文件时,则系统自动打开此文件,否则将建立一个新文件。这时你将会看到屏幕左边会出现波浪线~,这就代表该行是空的,没有任何文字,这时系统正在命令状态,怎样切换到编辑状态输入文字呢?按键盘上的Insert键即可,这时我们就可以像使用其它的编辑器一样进行文字的编辑了,功能键也和其它编辑器差不多,下面就是一些功能键的说明,是不是很简单?
  ===========================================================
  说明                功能键
  ===========================================================
  移动光标到所在行的最前面      Home
  移动光标到所在行的最后面      End
  向下翻一页             Page Down
  向上翻一页             Page Up
  删除光标所在位置字符        Delete
  删除光标所在位置前面的字符     Backspace
  移动光标              ←↑↓→
  ===========================================================
  另外,vi还支持粘贴与复制,不过用键盘来做实在很麻烦,现在哪台电脑没有鼠标呢?和Windows中一样,从你要复制的开始位置拖动鼠标到结束位置,这块区域就反白了,再将光标移到你要粘贴的位置,按鼠标中键即可完成粘贴(如果你的鼠标是两个键的,同时按左右键即可模拟三键鼠标的中键),这比 Windos里方便吧。也许有的朋友会问,如何进行查找呢?下面我们按键盘上的Esc键切换到命令状态,输入“?<你要查找的字符串>”(不带引号)就执行向下查找操作,而“/<你要查找的字符串>”表示向上查找,键盘上的n表示重复一次,而N表示反方向重复一次。
  说了半天,可能你的文件已经编辑完成了,但如何存盘呢?现在我们还是保持在命令状态,按:w按后回车即完成了存盘工作,而退出vi返回到Linux的命令是:q,这两个命令也可以组合使用,如:wq代表存盘退出。
  好了,说了半天,可能你的头已经大了,上面讲到的那些只是vi中最常用的功能,至于其它的功能你可以在使用中慢慢体会。顺便说一句,不要强记那些命令,它们看起来多而毫无规律,多用几次自然就熟练了,现在我觉得比Windows中的记事本方便多了。

vi教程

By admin, 2010年01月23日 2:13 下午

vi 是visual edit 的缩写
文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi.

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

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

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

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

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

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

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

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

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

进入vi
vi test
离开vi
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入磁盘中,并离开vi。
:ZZ 同wq
同wq
:w 将缓冲区内的资料写入磁盘中,但并不离开vi。
:q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容,此指令可与: w 配合使用。
Vi 的操作模式
Vi 提供两种操作模式:
输入模式(insert mode)
指令模式(command mode)
当使用者进入vi后,既处于指令模式下,此刻键入任何字元皆被视为指令。

输入模式:a(append) 游标之后加入资料。
A 该行之末加入资料
i (insert) 游标之前加入资料
I 该行之首加入资料
o (open) 新增一行与该行之下供输入资料
O 新增一行与该行之上供输入资料

指令模式:B      移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符。
b    由游标所在位置之前一个字串的第一个字元
cc 删除整行,修改整行的内容。
D      以行为单位,删除游标在内后面的所有字符。
db 删除该行光标前字符
dd 删除该行
de 删除自光标开始后面的字符
d加字符   删除光标所在位置至字符之间的单
E      移至该行最后字符,若光标在该行最后字符则光标移至下一行最后字符
e      由游标所在位置至该字串的最后一个字元
G 移至该档案的最后一行 
h 向前移一个字元
j 向下移一个字元
k 向上移一个字元
0 移至该行之首
M 移至视窗的中间那行
L 移至视窗的最后一行
l 向后移一个字符
0 由游标所在位置该行的第一个字元
nG 移至该档案的第n行
n+ 自游标所在位置向后移n行至该行的第一字符
n- 自游标所在位置向前移n行至该行的第一字符
R 进入取代状态,直到《ESC》为止
s 删除游标所在字元,并进入取代模式直到《ESC》
S 删除游标所在之该行资料,并进入输入模式直到《ESC》
w 由游标所在位置之下一个字串的第一个字元
x 删除游标所在该字元。
X 删除游标所在之前一字元。
r 用接于此指令之后的字元取代(replace)游标所在字元
yy yank整行,使游标所在该行复制到记忆体缓冲区
显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
$ 由游标所在位置至该行的最后一个字元。
) 由游标所在位置至下一个句子的第一个字元。
( 由游标所在位置至该句子的第一个字元。
{   由游标所在位置至该段落的最后一个字元。
} 由游标所在位置至该段落的第一个字元

yank和delete可将指定的资料复制到记忆体缓冲区,而藉有put指令可将缓冲区内的资料复制到荧幕上
例如:搬移一行 :在该行执行dd
游标移至目的地
执行p
复制一行 :在该行执行yy
游标移至目的地
执行p

利用crontab定时备份MySQL数据库

By admin, 2010年01月23日 2:07 下午

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/mysqldata

#mkdir /data/back/mysql

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/backmysql

输入

注意:`符号是TAB键上面的符号,不是ENTER左边的

还有date后要有一个空格。

#!/bin/bash

rq=` date %Y%m%d `

tar zcvf /data/back/mysql/mysql$rq.tar.gz /data/mysql/mysql

或者写成

#!/bin/bash

rq=` date %Y%m%d `

mysqldump –all-databases -u root -p密码 > /mysqldata/mysql$rq.sql

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。

3、修改文件属性,使其可执行

# chmod x /usr/sbin/backmysql

4、修改/etc/crontab

#vi /etc/crontab

或者#crontab -e

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份

20 * * * * root /usr/sbin/bakmysql

每小时第20分钟备份一次

5、重新启动crond

# /etc/rc.d/init.d/crond restart

完成。

这样每天你在/mysqldata可以看到这样的文件

mysql20080929.tar.gz

直接下载即可。

js中文浏览器检测

By admin, 2010年01月23日 7:05 上午

<script type=”text/javascript”>
if (navigator.language)
var language = navigator.language;
else
var language = navigator.browserLanguage;
if(language.indexOf(‘zh’) > -1)document.location.href = ‘nddbc.html’;
</script>

Panorama Theme by Themocracy