人一生这一辈子,能记住多少事?还是写下来的好。 注册 | 登陆
浏览模式: 标准 | 列表分类:服务器相关

如果使用SSH进行数据库的备份与恢复

SSH/Shell 操作之如何备份,恢复MySQL数据库
前提,首先是要支持SSH(shell)登陆的空间了。
用SSH工具登陆空间,CD到你想要备份到的目录,
加入我们想把bak.sql这个数据恢复到以下的数据库里面:
MySQL地址 localhost
MySQL名称 sql_name
MySQL帐号 sql_user
MySQL密码 123456

备份命令:复制内容到剪贴板代码:

 

XML/HTML代码
  1. mysqldump -hlocalhost -udb_user -p123456 db_name >bak.sql  

 

你没看错: -h,-u,-p后面没空格,直接加的都是,加入空格后会出错

回车后输入密码bak.sql就开始备份到当前目录下了。

恢复命令:复制内容到剪贴板代码:

XML/HTML代码
  1. mysql -hlocalhost -usql_user -p123456 sql_name  

 

回车后输入密码后,在提示符下输入要恢复的数据库文件名(文件要保存在当前目录下),复制内容到剪贴板代码:

 

XML/HTML代码
  1. source bak.sql  

Tags: mysql, mysqldump

Subversion在windows的安装


主要内容:51Testing软件测试网b#H5k8j _e%WX2E
1、安装包括服务器端和客户端51Testing软件测试网W j5Z8F5Z!Z
2、服务器端至少需要安装SVN,下载地址:http://tortoisesvn.net/downloads
F3wYr8Zb03、客户端至少需要安装TortoiseSVN,下载地址:http://sourceforge.net/projects/tortoisesvn/

Xf/@7j&l6nRn@'?0

0}ly$]i@'D!t0一、服务器端安装
$d&SS3CJ ^/j[R3Q#Q6KN0  Subversion可以作为Apache的扩展模块来运行,也可以使用独立服务器来运行.今天先总结使用独立服务器运行的内容.51Testing软件测试网'Di"|DrrVm&f
1.安装SVN:下载SVN后,在服务器上安装,安装非常简单,一路NEXT就OK了。51Testing软件测试网6s4Zz5E Ubr/d%a
2.生成版本库:假设版本库所在路径为e:\svnroot51Testing软件测试网0~o nEY;qe;N(aC
  第一步:打开"开始->运行",输入CMD,打开DOS命令窗口,输入"cd C:\Program Files\Subversion\bin\",点击"enter";
/l0N&Sm I FZ9u0  第二步: 在DOS命令窗口中输入svnadmin create E:\svnroot 就会在目录E:\svnroot下创建一个版本库。如图所示:
'Yy-F/b�e2B0     我们也可以在服务器上安装TortoiseSVN,利用TortoiseSVN图形化的完成这一步:在目录E:\svnroot下"右键 ->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。51Testing软件测试网6i&E}@U@ u
3.配置用户和权限:来到E:\svnroot\conf目录,51Testing软件测试网#\0f]? sxu!D
 修改svnserve.conf:51Testing软件测试网i;U.a4L)q
  # [general]51Testing软件测试网DbR V} ?oX[W
  # password-db = passwd51Testing软件测试网(|!X&S-Vx$riS
  改为:
V5p*O%n mz0  [general]51Testing软件测试网3Th ^ HG
  password-db = passwd
T.yUX^3P0 然后修改同目录的passwd文件,去掉下面三行的注释:
$u yJG2VGu0  # [users]
o�M PM3h [T+g|0  # harry = harryssecret51Testing软件测试网ZPF7Ua-R3m}�`
  # sally = sallyssecret
jcD$F e9lh0  最后变成:51Testing软件测试网 L�dZ;K\k8SZ S
  [users]51Testing软件测试网:Lo�pd B"g0X
  harry = harryssecret
\L(^-@cZ"x+F as0  sally = sallyssecret
ayN%f)^]iH p~04.运行独立服务器
)zyZ9u y:d`(r0 在dos命令窗口中输入svnserve -d -r E:\svndemo\repository,svn服务就启动了.这时候不能将命令窗口关闭.
U'H(t!SmKL$U(z0 以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成Windows服务的工具Svnserve.exe,下面分别讲述:
` S P A0l+EB0 A.利用Svnserve.exe51Testing软件测试网&R$A"Z$qO x eP
 在 DOS命令窗口中,输入sc create svnservice binPath= "\"c:\program files\subversion\bin\svnserve.exe\" --service -r e:\svnroot" display= "svnservice" depend= Tcpip51Testing软件测试网B@[ OvFg&R
 注意:在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。51Testing软件测试网 Ur)ju-i8s
 在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。51Testing软件测试网9Gs/V b7j G7BF
 如 果路径中包括空格,一定要用“\”处理“"”号,如上面所示.如果不包括空格,例如svnserve.exe是在c:\subversion\bin\路 径下,则binpath可以改为"c:\subversion\bin\svnserve.exe --service -r e:\svnroot"
8eq?+f]O!j0 sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。51Testing软件测试网r)~H3vNV2GC
 B.利用svnservice工具,到网上搜一个svnservice.exe就可
I.X9H#ls*o wZ+g M0 将SVNSERVICE.EXE拷贝到{subversion}安装路径的bin下,然后在dos命令窗口中输入"svnservice.exe -install -d -r e:\svnroot" 按enter键,服务安装成功.51Testing软件测试网sZ2ld-e"Y9Xm6\
 第一次安装完后要到服务中手动启动它,或者到服务中将它设为自动启动,让每次机器启动时自动启动这个服务。
bFU~pD gS7o(I0 注意:一定要将SVNService.exe放在svnserve.exe相同的目录.51Testing软件测试网*A_"wf;@
 如果要访问版本库,可以指定路径"svn://localhost/..."进行访问.
{.YaC?.}? w0二:客户端安装
4PuA�K]iK0 直接按照安装步骤安装TortoiseSVN即可,安装完成后,重新启动机器.

F!Rj oKm$a-cr.W0
11

ubuntu下如何重启apache

在终端下使用:
$sudo /etc/init.d/apache2 force-reload

$sudo /etc/init.d/apache2 restart

就可以重启apache

Tags: ubuntu, apache

tar 在FreeBSD下创建和解压tar.gz压缩包

创建 格式:tar czvf [文件名.tar.gz] [文件名]

   例如:tar czvf test.tar.gz test (当前命令发生在需要打包文件所在目录)

解压 格式:tar zxvf [文件名.tar.gz]

   例如:tar zxvf test.tar.gz (需要提前将压缩包传至当前释放目录下)

» 阅读全文

Tags: freebsd, tar压缩包

linux如何复制文件夹

CP命令
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件

cp -r /tmp/a /root/a

记得有空格

Tags: linux, 复制, 文件夹

关于FREEBSD的ARP的IP与MAC的绑定

FREEBSD下可以使用arp -s方便地进行ARP绑定

Tags: freebsd, arp, mac绑定

MPM中prefork与worker的区别

为了使Apache更加平滑地从1.3版升级到2.0版,Apache开发团队做了很多工作。目前很多重要的模块已经可以很好地支持2.0版,如PHP、FastCGI、Mod_perl、Mod_python等。在httpd.conf的指令配置语法上,目前的2.0版(2.0.45)与1.3版的兼容性已做得相当好。比如,以前的2.0版如果要使用PHP,一般用过滤器实现;现在的PHP官方文档中已经使用1.3版中的LoadModule语句做为加载PHP的推荐方式。只要略微了解一下Apache 2.0的新特性,从1.3版升级到2.0版将是一件非常容易的事情。使用Apache 2.0是大势所趋,因为Apache的开发团队已经把开发重心转移到2.0版上。1.3版自2002年10月发布了1.3.27后一直没有新版本推出,而2.0版在与1.3.27同时发布2.0.43后,在今年1月发布了2.0.44,并于今年3月末发布了2.0.45,并包含了很多改进和修正。

  MPM的引入带来性能改善

  Apache 2.0在性能上的改善最吸引人。在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择。本文不想叙述那些以功能换取速度的指令,如HostnameLookups等,而只是说明在2.0中影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块)的基本工作原理和配置指令。

  毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处:

  ◆ Apache可以更简洁、有效地支持多种操作系统;

  ◆ 服务器可以按站点的特殊需要进行自定制。

  在用户级,MPM看起来和其它Apache模块非常类似。主要区别是在任意时刻只能有一种MPM被装载到服务器中。

  指定MPM的方法

  下面以Red Hat Linux 9为平台,说明在Apache 2.0中如何指定MPM (Apache采用2.0.45)。先解压缩源代码包httpd-2.0.45.tar.gz,生成httpd-2.0.45目录(Apache 1.3源代码包的命名规则是apache_1.3.NN.tar.gz,而2.0版则是httpd-2.0.NN.tar.gz,其中NN是次版本号)。

  进入httpd-2.0.45目录,运行以下代码:

[code]
$ ./configure --help|grep mpm
[/code]

 

  显示如下:
[code]
--with-mpm=MPM Choose the process model for Apache to use. MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}
[/code]

 

  上述操作用来选择要使用的进程模型,即哪种MPM模块。Beos、mpmt_os2分别是BeOS和OS/2上缺省的MPM,perchild主要设计目的是以不同的用户和组的身份来运行不同的子进程。这在运行多个需要CGI的虚拟主机时特别有用,会比1.3版中的SuExec机制做得更好。leader和threadpool都是基于worker的变体,还处于实验性阶段,某些情况下并不会按照预期设想的那样工作,所以Apache官方也并不推荐使用。因此,我们主要阐述prefork和worker这两种和性能关系最大的产品级MPM ( 有关其它的MPM详细说明,请参见Apache官方文档:http://httpd.apache.org/docs-2.0/mod/)。

  prefork的工作原理及配置

  如果不用“--with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是Apache 1.3中采用的模式。prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。

  若使用prefork,在make编译和make install安装后,使用“httpd -l”来确定当前使用的MPM,应该会看到prefork.c(如果看到worker.c说明使用的是worker MPM,依此类推)。再查看缺省生成的httpd.conf配置文件,里面包含如下配置段:
[code]<IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule>[/code]

 


  prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。

  MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。

  MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:

  ◆ 可防止意外的内存泄漏;

  ◆ 在服务器负载下降的时侯会自动减少子进程数。

  因此,可根据服务器的负载来调整这个值。笔者认为10000左右比较合适。

  MaxClients是这些指令中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。系统管理员可以根据硬件配置和负载情况来动态调整这个值。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。如果把这个值设为大于256,那么Apache将无法起动。事实上,256对于负载稍重的站点也是不够的。在Apache 1.3中,这是个硬限制。如果要加大这个值,必须在“configure”前手工修改的源代码树下的src/include/httpd.h中查找256,就会发现“#define HARD_SERVER_LIMIT 256”这行。把256改为要增大的值(如4000),然后重新编译Apache即可。在Apache 2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。下面是笔者的prefork配置段:
[code]
<IfModule prefork.c> StartServers 10 MinSpareServers 10 MaxSpareServers 15 ServerLimit 2000 MaxClients 1000 MaxRequestsPerChild 10000 </IfModule>
[/code]

 

  上述配置中,ServerLimit的最大值是20000,对于大多数站点已经足够。如果一定要再加大这个数值,对位于源代码树下server/mpm/prefork/prefork.c中以下两行做相应修改即可:
[code]
define DEFAULT_SERVER_LIMIT 256
define MAX_SERVER_LIMIT 20000
[/code]


  worker的工作原理及配置

  相对于prefork,worker是2.0 版中全新的支持多线程和多进程混合模型的MPM。由于使用线程来处理,钥梢源硐喽院A康那肭螅低匙试吹目∮诨诮痰姆务器。但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。这种MPM的工作方式将是Apache 2.0的发展趋势。

  在configure -with-mpm=worker后,进行make编译、make install安装。在缺省生成的httpd.conf中有以下配置段:

[code]
<IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
[/code]

 

  worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。

  MinSpareThreads和MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。

  ThreadsPerChild是worker MPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用ThreadLimit指令,它的最大缺省值是20000。上述两个值位于源码树server/mpm/worker/worker.c中的以下两行:

[code]
define DEFAULT_THREAD_LIMIT 64
define MAX_THREAD_LIMIT 20000
[/code]


  这两行对应着ThreadsPerChild和ThreadLimit的限制数。最好在configure之前就把64改成所希望的值。注意,不要把这两个值设得太高,超过系统的处理能力,从而因Apache不起动使系统很不稳定。

  Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。这两个值位于源码树server/mpm/worker/worker.c中的以下两行:

[code]
define DEFAULT_SERVER_LIMIT 16
define MAX_SERVER_LIMIT 20000
[/code]


  需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值)。下面是笔者的worker配置段:

[code]
<IfModule worker.c> StartServers 3 MaxClients 2000 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 100 MaxRequestsPerChild 0 </IfModule>
[/code]

 

  通过上面的叙述,可以了解到Apache 2.0中prefork和worker这两个重要MPM的工作原理,并可根据实际情况来配置Apache相关的核心参数,以获得最大的性能和稳定性。

Tags: mpm, prefork, worker