mp77的UNIX课件笔记(3)

一、 UNIX的安装

需要提前说明的是,本段内容并不会包含某个UNIX发行版本的完整安装教程,而是总结了UNIX安装的一般步骤及其常用的解决方案。

一般说来UNIX的安装需要经过三个阶段:准备阶段、内核系统安装阶段以及用户系统安装阶段。在准备阶段中,首先应确定的是系统所处的硬件环境,例如硬盘接口类型、RAID控制器驱动、网卡驱动、硬件的启动顺序以及现有系统的备份及安装顺序;随后获取系统软件(GNU/Linux通常可以在网上直接获得ISO文件);配置准备需要制定出分区规划、SWAP分区大小、root及普通用户口令、网络配置等。在系统安装阶段可以根据相关引导方式逐步进行,包括硬盘分区、加载硬件驱动等,需要注意的是在安装双系统(包含Windows时)需要先安装Windows再安装Unix。

系统安装完成后需要先检查硬件是否全部安装正常,通常有两种查看方式:

1、 lspci -b -v,列出本机上所有PCI总线上连接的设备,其中-b查看相关设备在PCI总线上的地址信息,-v显示相关详细信息verbose。

2、 dmesg,显示linux启动信息,通常在系统启动时会自动检测硬件设备,dmesg允许用户随时查看该检测列表。

检查正常后可对系统做以下配置工作(可选):

1、配置防火墙,开放/关闭有关端口;调整服务,禁用不必要服务;

2、运行系统更新程序,修补系统漏洞;

3、配置X-windows,或将X关闭,通过对以下文件进行修改可以指定Linux的启动模式:

./etc/inittab

//X=3   text mode

//X=5   x-window

4、增加管理用户,配置远程登录;

5、进行用户磁盘限额配置;

6、应用程序的安装和编译等;

7、对系统主要的配置文件进行备份;

通常要对系统做远程登陆配置工作,当然这是根据不同用户需求而定的。远程登录一般分为远程登录管理和远程文件交流管理两种工作。

远程登录服务器进行管理的方式主要包括rsh,rlogin,telnet,ssh(字符终端方式),远程Xwindows,VNC(图形终端)等。不过仍然需要注意以下问题:

1、rsh/rlogin等协议由于安全性差等原因已面临被淘汰;

2、telnet协议认证过程用户名/密码明文传输,存在安全隐患,一般也不允许root用户从telnet登录,su命令可以实现用户身份的转换;

3、Ssh(Secure shell)采用ssl协议对通信进行加密,可有效保障用户名/密码泄漏;.

4、常用的SSH客户端有NetTerm,SecureCRT,PuTTY等;

5、VNC/远程Xwindows可实现远程使用图形界面GUI;

远程文件交流管理一般包含以下几种基本方式:

1、FTP,要求开放服务器的20,21的端口和ftp服务.,常见的ftp客户端有CuteFTP;

2、SCP,集成在ssh服务中,无需开放ftp服务,推荐使用WinSCP;

3、NFS,Network File System,适合UNIX服务之间的文件传递;

4、Samba,方便UNIX和Windows系统之间交换文件;

5、HTTP,适合下载文件,UNIX平台下的wget工具,可将整个目录下载下来;

二、 用户系统安装

用户系统涉及到常用软件的安装设置,尽管许多UNIX/Linux发行版中已内置了大量的软件包,但仍无法确保满足所有用户的需要(如一些商业软件)。其安装方式也分三种具体途径:

1、 拷贝运行,针对一些文件包可以直接运行,可以直接拷贝的方式,一般采用压缩包传输到服务器上解压执行,可能需要修改权限。

2、 编译安装方式,采用源代码编译,要求安装编译器(需gcc、make等工具支持,一些发行版的workstation模式即附带开发者GNU工具),编译过程相对复杂,需要一定经验和技巧,但更灵活。

实践证明,有时编译一些规模较大的程序时耗时会非常长,其唯一的好处就是可以自己配置相应的程序——这通常只有专业人员才会用到……程序员算不算专业人员?你认为呢?

现在来看Linux中编译安装一个新内核的具体过程……编译内核?好吧……我们只需要了解编译安装的一般流程和方法即可,对于某些软件的编译安装可能需要其相关的高端硬件或软件知识作为支撑,当然忽略所有设置进行简单的内核升级还是不复杂的。

那么,我们转而来了解一下编译安装mysql数据库系统的基本流程……

# tar -zxvf mysql-5.0.45.tar.gz

  # cd mysql-5.0.45

  # ./configure –prefix=/usr/local/mysql –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=latin1

  # make

# make install

由上可知编译安装时应先释放相应软件包,进入安装目录,并配置configure生成相应的makefile或Makefile文件(相关参数需要提前了解),并不是所有的程序都自带configure,因而必要时makefile或Makefile需要自己制作。

然后利用make根据刚才生成的规则文件编译相关源代码文件,并编译安装install即可。(注:本段文字的目的仅为了演示编译安装的一般规则,并不包含具体的mysql安装方法,包括安装完成后的配置工作)。

3、 软件包安装方式,直接将编译好的软件包安装在UNIX系统上,类似于Windows平台下用setup命令安装一个软件包。安装过程简单,但包和包之间存在一定的依赖性关系,不同的Unix支持的软件包格式不相同。

在Linux下,软件包的格式略有不同,常用的包格式有rpm(Redhat Package Manager)、deb(Debian下利用dpkg工具以tar或tar.gz方式制作的软件包)、tar.gz、tar.z、tar.bz2(以上三种是一般Linux自带的打包工具)。

根据Linux主流发行版的不同,流行的软件包格式分别是rpm(Redhat 、SuSE、Fedora等采用 )和deb(一种流行的debian的衍生版本ubuntu采用)。尽管有alien(一种支持包格式转换的工具),但某些情况下依然无法实现不同包的跨系统正常安装。

1)RPM命令的主要选项有:

-i 安装软件。 

-t 测试安装,不是真的安装。 

-p 显示安装进度。 

-f 忽略任何错误。 

-U 升级安装。 

- 检测套件是否正确安装。

2)dpkg命令的主要选项有:

  -i 安装一个Debian软件包。

  -c 列出的内容。

  -I 从中提取包裹信息。

  -r 移除一个已安装的包裹。

  -P 完全清除一个已安装的包裹。和remove不同的是,remove只是删掉数据和可执行文件,purge另外还删除所有的配制文件。

  -L 列出安装的所有文件清单。

  -s 显示已安装包裹的信息。

  -reconfigure 重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。

三、UNIX备份方案

以上工作安装完毕并调试正常后,就可以为系统建立首次安装备份了。某些系统可能配备了相类似功能,部分商业版本同时也支持GHOST镜像。下面按照方法分类介绍一些简单有效的备份方案。

1、 直接文件备份,意即使用系统自带的档案压缩工具对待备份文件进行打包存储。在早期的UNIX系统中有compress命令可以使用,然而在目前大多数的UNIX/Linux中多数是tar一统天下了。

tar的选项众多,一般情况下使用的是:

-c   创建一个新的档案;

-f   使用的源档案文件;

-v   verbose列出tar处理的序列;

-z   使用gnuzip对档案附带压缩;

-x   释放源文件中的内容;

例如对/etc目录进行备份,有如下命令行:

tar zcvf /etc-backup.tar.gz /etc

恢复配置:

tar zxvf  /etc-backup.tar.gz /etc -restore

2、 通过网络备份,这在一些服务器环境中经常用到。其中和不同主机进行数据文件交流的途径也不尽相同:

和Windows服务器:CIFS,Samba;

和UNIX类服务器:NFS;

其他解决方案:FTP,HTTP;

现在以跨系统主机备份为例,介绍一种简单有效的远程备份方案。

某图书馆Web服务器操作系统为Windows 2003, 备份服务器为Linux,需要定时(每天)将Web服务器上的数据备份到Linux服务器上。

Web服务器IP: 202.1.1.1;

Linux备份服务器IP: 202.1.1.2;”

1) 基于samba实现,samba是一种可供不同主机进行数据文件交流的系统工具,它是基于SMB(Server Message Block)协议(ms后来改名为CIFS,Common Internet File System)的一种通用解决方案。

首先应对Windows主机上的数据目录进行共享,必要时可设置密码;通常还需要建立一个供backup专用的系统账户,这里设置为username:backup,password:backit,共享点为backit。

在Linux主机上建立相应的shell脚本(具体教程在后文中有详细说明):

/backup/backupweb.sh

#!/bin/sh

mkdir -p /backup/web

cd /backup

mount -t smbfs -o username=backup,password=backit //201.1.1.1/backupweb /backup/web

tar zcvf `date +%Y%m%d`.webbackup.tar.gz /backup/web

umount /backup/web

由于要求使用计划任务,在/etc/cron.daily/中加入backupweb.sh的符号连接,以实现每天一次的自动备份:

cd /etc/cron.daily/

ln -s /backup/backupweb.sh

这里就是一次简单的web服务器备份流程了。

2) 基于FTP实现。相应于samba,FTP的适用性和稳定性似乎更为优秀,另外在一些安全性较高的系统中还可以采用SSL或者TLS协议加密传输。

首先需要将待备份目录映射至FTP中的backupweb目录,这方面的工作在web服务器中完成。

Linux服务器中建立备份脚本backupweb-ftp.sh:

#!/bin/sh

cd /tmp

wget -m -np \ftp://username:password@202.1.1.1/backupweb/

tar zcvf /backup/`date +%Y%m%d`.webbackup.tar.gz /tmp/202.1.1.1/backupweb

rm -rf /tmp/202.1.1.1/backupweb

后续操作参考方案1即可。

至于Linux在进行系统备份时具体涉及到哪些系统文件,会在下节有详细说明。以上就是Linux中常用的一些文件备份解决方案的介绍,在实际应用中应根据具体情况灵活使用。