您的位置:首页 > 运维架构 > Linux

Linux 常用指令

2010-03-15 05:29 465 查看
1. 备份web数据

cd /www/

tar zcpf /backup/users.tar.gz users

(这步包含了对商务系统的/www/primaBiz/目录备份)

2. 备份邮件

cd /var

tar zcpf /backup/vmail.tar.gz vmail

3. 备份DNS

cd /var

tar zcpf /backup/named.tar.gz named

cd /etc

cp named.conf /backup/named.conf

4. 备份mysql数据库

cd /var/lib

tar zcpf /backup/mysql.tar.gz mysql

(这步包含对商务系统的primabizdb 备份)

5. primadb库,我们已经安装好了自动备份程序,在每天1点40备份数据库,

备份的文件将被压缩成以下形式:/backup/dbbk/primadb.yyyymmdd-hhiiss.sql.gz

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

win2k服务器:

1. 备份web数据:

将 hosting/wwwroot/ 复制或者用 rar分卷压缩到备份盘

将 hosting/acasd/vohst.conf 备份 ,这个文件是jsp站点的配置文件

2. 备份MSSQL数据库

参照附件(仅供参考),注意:附件的文档是把本地数据库导入到远程的操作,

备份服务器,操作顺序:打开本地数据库导入导出工具,先连接远程复制数据,再连接本地;

bakup linux server

Migrate a Control+Appliance Linux Server

Requirement1: old and new server have the same version of Prim@Hosting

Requirement2: use bash as your shell

!!! Read all before continue !!!

If you are not sure about any step, ask us.

on Old server:

assume backup files put in /backup

1. backup web

cd /www/

tar zcpf /backup/users.tar.gz users

2. backup mail

cd /var

tar zcpf /backup/vmail.tar.gz vmail

3. backup dns

cd /var

tar zcpf /backup/named.tar.gz named

4. backup mysql

cd /var/lib

tar zcpf /backup/mysql.tar.gz mysql

5. backup GenComSite user data

cd /www/prima/htdocs/apps/GenComSite

tar zcpf /backup/GenComSite.tar.gz sitepage upload

6. backup configs

cd /usr/prima

tar zcpf /backup/prima_etc.tar.gz etc

cd /usr/prima/postfix

tar zcpf /backup/postfix_conf.tar.gz conf

cd /usr/local/frontpage

tar zcpf /backup/frontpage_cnf.tar.gz *.cnf

cd /etc

cp named.conf /backup/named.conf

if used Java Support, and use resin

cd /usr/local/resin/conf

cp host.conf /backup/resin_host.conf

if used Java Support, and use tomcat

cd /var/tomcat4/conf

cp server.xml /backup/server.xml

cd /www/prima/htdocs/common

cp PUB.Config.inc /backup/PUB.Config.inc

cd /www/prima/htdocs/apps/phpMyAdmin

cp config.inc.php /backup/config.inc.php

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

on New server:

ensure all backups are copied from Old server to New server

assume backup files put in /backup

0. stop services:

/etc/init.d/httpd stop

/etc/init.d/muddleftpd stop

/etc/init.d/postfix stop

/etc/init.d/courier-pop3d stop

/etc/init.d/named stop

/etc/init.d/mysqld stop

/etc/init.d/acald stop

1. restore web

cd /www

tar zxpf /backup/users.tar.gz

2. restore mail

cd /var

tar zxpf /backup/vmail.tar.gz

3. restore dns

cd /var

tar zxpf /backup/named.tar.gz

4. restore mysql

cd /var/lib

tar zxpf /backup/mysql.tar.gz

5. restore GenComSite

cd /www/prima/htdocs/apps/GenComSite

tar zxpf /backup/GenComSite.tar.gz

6. restore configs

cd /usr/prima

tar zxpf /backup/prima_etc.tar.gz

cd /usr/prima/postfix

tar zxpf /backup/postfix_conf.tar.gz

cd /usr/local/frontpage

tar zxpf /backup/frontpage_cnf.tar.gz

cd /etc

cp /backup/named.conf .

if used Java Support, and use resin

cd /usr/local/resin/conf

cp /backup/resin_host.conf ./host.conf

if used Java Support, and use tomcat

cd /var/tomcat4/conf

cp /backup/server.xml ./server.xml

cd /www/prima/htdocs/common

cp /backup/PUB.Config.inc .

cd /www/prima/htdocs/apps/phpMyAdmin

cp /backup/config.inc.php .

7. sync sys user info

cd /root

cat /usr/prima/etc/usermap | awk ‘{printf("/usr/sbin/useradd -g ftpd -d /www/users/%s -s /no/shell -M %s\nchown -R %s:ftpd /www/users/%s\n",$1,$2,$2,$1)}’ > sync_sys_users.sh

sh sync_sys_users.sh

8. sync vmail user info

sh convert_vmail_id.sh

9. start services:

/etc/init.d/httpd start

/etc/init.d/muddleftpd start

/etc/init.d/postfix start

/etc/init.d/courier-pop3d start

/etc/init.d/named start

/etc/init.d/mysqld start

/etc/init.d/acald start

if used Java Support, and use resin

/etc/init.d/resin start

if used Java Support, and use tomcat

/etc/init.d/tomcat4 start

Over.

Appendix 1 convert_vmail_id.sh

—————————————————————————————————————————————————————————————-

#!/bin/sh

userdb_dir="/usr/prima/etc/mail/userdb"

default_userdb="$userdb_dir/default"

makeuserdb_prog="/usr/prima/maildrop/bin/makeuserdb"

update_ugid_infile()

{

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] ; then

return 1

fi

if [ ! -f $3 ] ; then

return 1

fi

sed -e "s/uid=[0-9]*/uid=$1/g" $3 > $3.tmp

if [ $? != 0 ] ; then

rm -f $3.tmp

return 1

fi

cp $3.tmp $3

rm -f $3.tmp

sed -e "s/gid=[0-9]*/gid=$1/g" $3 > $3.tmp

if [ $? != 0 ] ; then

rm -f $3.tmp

return 1

fi

cp $3.tmp $3

rm -f $3.tmp

return 0

}

vuid=`id -u vmail`

if [ $? != 0 ] ; then

echo "can not get vmail user id"

exit 1

fi

vgid=`id -g vmail`

if [ $? != 0 ] ; then

echo "can not get vmail group id"

exit 1

fi

if [ ! -d $userdb_dir ] ; then

echo "$userdb_dir does not exist or is not a dir"

exit 1

fi

for name in `ls $userdb_dir`

do

file="$userdb_dir/$name"

if [ -f $file ] ; then

echo -n "Updating $name…"

if [ $name != "default" ] ; then

update_ugid_infile $vuid $vgid $file

else

echo -e "vmail\tuid=$vuid|gid=$vgid|home=/var/vmail|shell=/bin/bash|systempw=!!\n$vuid=\tvmail\nroot@$HOSTNAME\tuid=$vuid|gid=$vgid|home=/var/vmail|mail=/var/vmail/root|systempw=!!" > $default_userdb

fi

if [ $? = 0 ] ; then

echo "success."

else

echo "fail."

fi

fi

done

echo

echo "Rebuild db…"

$makeuserdb_prog

echo "done."

echo

echo "bye."

vi全屏幕编辑器

vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode):

command方式:

 任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入都引起立即反映

insert方式:

 任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入insert方式,insert方式下按ESC,可跳回command方式。

escape方式:

以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当

成特别指令。

进入vi(在系统提示符下面输入以下指令):

vi           进入vi而不读入任何文件

vi filename      进入vi并读入指定名称的文件(新、旧文件均可)。

vi +n filename    进入vi并且由文件的第几行开始。

vi +filename      进入vi并且由文件的最后一行开始。

vi + /word filename  进入vi并且由文件的word这个字开始。

vi filename(s)     进入vi并且将各指定文件列入名单内,第一个文件先读入。

vedit         进入vi并且在输入方式时会在状态行显示“INSERT MODE"。

编辑数个文件(利用vi filename(s))进入vi后)

:args         显示编辑名单中的各个文件名

:n          读入编辑名单中的下一个文件

:rew         读入编辑名单中的第一个文件

:e#          读入编辑名单内的前一个文件

:e file        读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以: w 存档。

:e! file       强迫读入另一个文件进入vi,原文件不作存档动作。

存储及退出vi

:w filename      存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名)。

:wq 或者 或者zz   存文件,并且退出vi.

:q          不作任何修改并退出vi。

:q!          放弃任何修改并退出vi。

:!command       暂时退出vi并执行shell指令,执行完毕后再回到vi。

:sh          暂时退出vi到系统下,结束时按Ctrl + d则回到vi。

加数据指令

i           在关标位置开始插入字符,结束时候按ESC键。

I           在光标所在行的最前面开始加字,结束时按ESC键。

a           在光标位置后开始加字,结束时按ESC键。

A           在光标所在行的最后面开始加字,结束时按ESC键。

o           在光标下加一空白行并开始加字,结束时按ESC键。

O           在光标上加一空白行并开始加字,结束时按ESC键。

!command       执行shell指令,并把结果加在光标所在行的下一行。

删除指令

nx          删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符)

nX           删除由光标位置起始的n个字符(不含光标位置)。

ndw          删除光标位置其实的n个字符组(word)。

d0           将行的开始到光标位置的字符全部删除。

d$ 或D         将光标位置起始到行尾的字符全部删除。

ndd          将光标位置起始的n行(整行)删除(dd表示删除光标所在行)。

:start,endd      删除文件的第start到end行。

关标移动

0           移到一行的开始

$           移到一行的最后

[           移到文件开始位置

]           移到文件结束位置

nh          往左移n位

nl或者spacebar     往右移n位

nk          向上移n行

n+          向上移n行,光标在该行的起始

ni           向下移n行

n-          向下移n行,光标在该行的起始

H           移到屏幕的左上角

M           移到屏幕的中间行开头

L           移到屏幕的最后一行

G           移到文件的最后一行

nG或者:n       移到文件的第n行

nw          右移n个字组,标点符号属于字组

nW          右移n个字组,标点符号不属于字组

nb          左移n个字组,标点符号属于字组

nB          左移n个字组,标点符号不属于字组

Ctrl + u       屏幕上卷半个菜单

Ctrl + d        屏幕下卷半个菜单

Ctrl + b        屏幕上卷一个菜单

Ctrl + F        屏幕下卷一个菜单

修改指令

r           修改光标文件的字符

R           从光标位置开始修改,结束时按ESC键

new          更改n组字符,结束时按ESC键

ncc          从光标所在位置开始更改n行,结束时按ESC键

重排各行长度

i           并按Enter将该行由光标所在处断开,并进入insert方式

J           把下一行的数据连接到本行之后

寻找指令

/text         从光标位置往下找字串text

?text         从光标位置往上找字串text

n           继续找下一个字串(在输入上面的寻找指令之后使用)

寻找并且取代指令

:getxt1/s/ /text2/options   将各行的text1替换为text2

               option=g表示文件中所有的text1均被取代,若未输入任何option,则只有               各行中的第一个出现的text1被取代

               option=go 在屏幕显示各取代的行

               option=gc 在每个字串取代之前要求确认 

Start,endgtext1/s/ / text2/options  同上,只寻找并取代第start~end行。

或:Start,ends/text1/text2/options

复制及移动文件

:first,last co dest      将first 到last行的数据复制到目标行(dest)下面

:Start,end m dest      将start 到 end行的数据移动到目标行(dest)下。   

:r filename          将指定文件的内容读入光标所在行下。

nY               将光标所在位置开始的n行数据暂存

p               复制暂存数据在光标的下一行

P               复制暂存数据在光标的上一行

其他命令

.               重复前一指令

u               取消前一指令

Ctrl + l           刷新屏幕显示

:set number          显示文件的行号,但不会存文件

:set nonumber         解除行号显示

:set ai            设置每行起始位置(以光标当前位置为起始)

:set noai           取消行起始位置设定

:f 或<Ctrl> + g        告诉用户有关现行编辑文件的数据。

要发现系统down机的原因可以首先检查系统日志/var/log/messages,看里面有没有什

么特殊纪录,尤其是有关kernel的。

另外可以用sar命令看系统前一段时间的运行记录。

sar

显示cpu使用情况统计

sar -b

显示文件系统IO统计

sar -c

显示进�

��创建统计

sar -n FULL

显示网络设备通信统计

sar -r

显示内存使用统计

sar -A

显示所有记录的统计信息。

从sar记录中可以看到down机前系统活动的情况,继而可以判断是那里引起的问题。

MyCgiwrap-prima说明

1. 概述

原来版本中,对CGI资源的限制是固化在程序里的,而且是全局的,不同站点无法设置不同的资源限制值。

从1.0.14开始,通过检测环境变量的方式,可以打开/关闭CGI资源限制,以及详细设定各项资源限制的数值。

并且,可以通过另一个环境变量,限制一个最高系统负载,当负载达到这一数值时,拒绝任何CGI程序的运行,

这样可以防止CGI程序拖垮服务器。

另外,添加了CGI程序运行和资源使用的Log功能。

2. 如何设置环境变量

如果Apache配置中打开了mod_setenv,可以用SetEnv Var Value语句设置环境变量。

VirtualHost中设置的

环境变量覆盖全局环境变量,如:

SetEnv CGI_RLIMIT_CPU 30 # 全局设为限制CPU使用为30秒

<VirtualHost xxx>



SetEnv CGI_RLIMIT_CPU 60 # 该站点设为限制CPU使用为60秒



</VirtualHost>

<VirtualHost xxx>



SetEnv CGI_RLIMIT_CPU -1 # 该站点不限制CPU使用



</VirtualHost>

默认情况下,mod_setenv是加载的。

Apache的配置文件在/usr/prima/apache_ssl/conf/httpd.conf

httpd.conf是系统全局的配置,一般情况下不用更改。

httpd.conf包含了/usr/prima/etc/httpd/site.conf,site.conf放的主要是跟虚拟主机有关的全局设置,特殊站点等,

是在系统初始化时生成的;

site.conf包含了/usr/prima/etc/httpd/virtual.conf,virtual.conf放的是用户站点配置。

httpd.conf

site.conf

virtual.conf

如果“对某个站点进行单独设置”,直接修改/usr/prima/etc/httpd/virtual.conf 里相关的站点配置即可

完成设置后要重起apache。

3. CGI资源限制环境变量

CGI_RLIMIT_INFINITY 关闭资源限制, 缺省为打开。 ( eg.: SetEnv CGI_RLIMIT_INFINITY 1 )

资源限制详细项目:

CGI_RLIMIT_CPU CPU time in seconds, 15, set to -1 means no limit

CGI_RLIMIT_VMEM total virtual memory in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_FSIZE Maximum filesize in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_DATA max data size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_STACK max stack size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_AS address space (virtual memory) limit in bytes, 10000000, set to -1 means no limit

CGI_RLIMIT_CORE max core file size in bytes, 0, set to -1 means no limit

CGI_RLIMIT_RSS max resident set size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_NPROC max number of processes in bytes, 16, set to -1 means no limit

CGI_RLIMIT_NOFILE max number of open files in bytes, 32, set to -1 means no limit

CGI_RLIMIT_MEMLOCK max locked-in-memory address space in bytes, 1000000, set to -1 means no limit

一般而言,比较重要的是CPU时间、进程数和打开文件数,CGI_RLIMIT_DATA和CGI_RLIMIT_STACK影响的是程序占用的内存数据区和栈区,

如果使用内存比较大,可以考虑增加这2个限制,不过,一般情况下,一项一项的调整比较麻烦,因为程序在动态运行中,占用的资源

也不固定,如果站点有特殊需要,可以简单地设置CGI_RLIMIT_INFINITY。

4. 检查最高负载

CGI_CHECK_MAX_LOAD 检查最高允许的服务器负载,如果当前负载超过最高负载,打印出“服务器负载过高”

例子:

SetEnv CGI_CHECK_MAX_LOAD 10

5. 记录CGI执行和资源使用情况

可以记录CGI执行和资源使用情况。日志文件位置:/var/log/httpd/cgiwrap.log

此功能缺省为关闭状态,使用以下环境变量打开此功能

CGI_USE_LOG cgi execution and usage log, default off, /var/log/httpd/cgiwrap.log

例子:

SetEnv CGI_USE_LOG 1

日志项目:

user_jSe04TQl phpinfo.php <NULL> 192.168.0.60 <NULL> status=0 wtime=’0s’ utime=’0s 40000us’ stime=’0s 0us’ Wed Oct 23 12:36:08 2002

wtime: 程序运行总时间

utime: CPU时间(用户模式)

stime: CPU时间(系统模式)

6. Web界面

目前还无法通过Web管理界面进行资源限制的调整,只能手动编辑Apache配置文件,当通过主控界面对进行过手动修改的站点进行Web站点功能修改等操作时,

系统会删除手动设置;

只有在对站点进行WebSite功能修改时,才可能删除手动配置,这包括:Web站点管理(打开关闭CGI、Frontpage、修改带宽限制…)、站点方案升级。

修改FTP密码和WebSite管理没关系,不会影响。需要注意的是,用户通过Web站点管理打开关闭Frontpage、添加别名时有可能会删除手动配置。

Appendix mycgiwrap-prima 1.0.14新增环境变量:

CGI_RLIMIT_INFINITY 关闭资源限制, 缺省为打开。 ( eg.: SetEnv CGI_RLIMIT_INFINITY 1 )

CGI_RLIMIT_CPU CPU time in seconds, 15, set to -1 means no limit

CGI_RLIMIT_VMEM total virtual memory in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_FSIZE Maximum filesize in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_DATA max data size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_STACK max stack size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_AS &n

bsp; address space (virtual memory) limit in bytes, 10000000, set to -1 means no limit

CGI_RLIMIT_CORE max core file size in bytes, 0, set to -1 means no limit

CGI_RLIMIT_RSS max resident set size in bytes, 3000000, set to -1 means no limit

CGI_RLIMIT_NPROC max number of processes in bytes, 16, set to -1 means no limit

CGI_RLIMIT_NOFILE max number of open files in bytes, 32, set to -1 means no limit

CGI_RLIMIT_MEMLOCK max locked-in-memory address space in bytes, 1000000, set to -1 means no limit

CGI_CHECK_MAX_LOAD 检查最高允许的服务器负载,如果当前负载超过最高负载,打印出“服务器负载过高”

CGI_USE_LOG cgi execution and usage log, default off, /var/log/httpd/cgiwrap.log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: