基础篇四---一些不清楚知识的梳理与总结

一、rpm安装软件

1、rpm的定义

当前linux系统上的软件都是rpm包格式进行安装的,yum安装的包也是rpm格式的。rpm是red heat公司开发的一种软件管理方式,后来被广泛使用于各个系统。rpm软件包中已经包含了所需要编译的东西,及安装该软件所需要依赖的其他软件包的清单,在安装时会按照该清单直接去找这些软件,最终完成安装。

2、rpm默认安装的路径

RPM 类型的档案在安装的时候,会先去读取档案内记载的设定参数内容,然后将该数据用来比对 Linux 系统的环境,以找出是否有属性相依的软件尚未安装的问题。例如Openssh 这个联机软件需要透过 Openssl 这个加密软件的帮忙,所以得先安装openssl 才能装 openssh 。那你的环境如果没有 openssl , 妳就无法安装 openssh 。环境检查合格了,那举 RPM 档案就开始被安装到你的 Linux 系统上。那该软件内的档案到底是放置到哪里去啊?一般的如下:
/etc  一些配置文件放置的目录,例如 /etc/crontab
/usr/bin  一些可执行文件案
/usr/lib  一些程序使用的劢态凼式库
/usr/share/doc 一些基本的软件使用手册不说明文件
/usr/share/man 一些 man page 档案

3、rpm的相关命令

(1)安装软件

 rpm  -ivh   package_name
选项与参数:
-i :install 的意思
-v :察看更绅部的安装信息画面
-h :以安装信息列显示安装进度

范例一、一口气安装两个以上的软件时:
[root@www ~]# rpm  -ivh   a.i386.rpm   b.i386.rpm   *.rpm    # 后面直接接上许多的软件档案!
范例二、直接由网络上面的某个档案安装,以网址来安装:
[root@www ~]# rpm  -ivh   http://website.name/path/pkgname.rpm

PS:一般来说,rpm 的安装选项不参数大约就是这些,一般建议直接使用 -ivh 就好了, 如果安装的过程中发现问题,一个一个去将问题找出来,尽量不要使用『 暴力安装法 』,就是透过 --force 去强制安装。

(2)更新与升级

rpm  -Uvh  package_name 后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自劢更新至新版;

(3)查询

RPM 在查询的时候,其实查询的地方是在 /var/lib/rpm/ 这个目录下的数据库档案!另外, RPM 也可以查询未安装的 RPM 档案内的信息。

rpm  -q  package_name :仅查询,后面接的软件名称是否有安装

-qa:查询所有安装的包的信息,一般和grep一起使用,如rpm -qa |grep vim

-ql :列出该软件所有的档案不目录所在完整文件名 (list)

-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)

-qf :由后面接的文件名,找出该档案属亍哪一个已安装的软件;注意:这里接的是文件名,即该文件由哪一个软甲所提供的;例如: rpm -qf   /bin/sh

(4)移除

rpm  -e  package_name:移除某软件,不过常发生被依赖而无法移除的问题;

二、环境变量PATH

PATH是bash的环境变量,之所以能够在任何目录下都能执行一些命令,是因为这些命令文件在PATH中的某一个路径下,当报错找不到命令时,肯定是因为这个命令不再PATH下,而加入PATH的方法即为

PATH=$PATH:/**/**然后再echo $PATH即可发现已经加入了环境变量;

二、linux的备份策略

定时备份一些目录,和数据库,通过定时任务来跑脚本的方式;也可以使用rsync上传备份数据到指定的机器,如下:

前提是必须要在你的服务器上面取得某个账号使用权后, 并让该账号可以不用密码即可登入才行! 假讴你已经设定好 dmtsai 这个账号可以不用密码即可登入进程服务器,而同样的你要把 /backup/weekly/ 整个备份到 /home/backup/weekly 底下时,可以简单这样做:
[root@www ~]# vi /backup/rsync.sh
#!/bin/bash
remotedir=/home/backup/
basedir=/backup/weekly
host=127.0.0.1
id=dmtsai
# 底下为程序阶段!丌需要修改喔!
rsync -av -e ssh $basedir ${id}@${host}:${remotedir}
由亍 rsync 可以透过 ssh 来进行镜像备份,所以没有变更的档案将不需要上传。

三、运行级别runlevel

1、7个运行级别

0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

1:单用户模式,root权限,用于系统维护,禁止远程登陆     注意:此运行级别是系统维护,远程连接也会被禁止,因此慎重!

2:无网络支持的多用户模式

3:有网络支持的多用户模式(文本模式,工作中最常使用的模式)

4:保留,系统未使用

5:有网络支持有X-Window(图形界面)支持的多用户模式

6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

2、运行级别的一些命令

runlevel:查看当前运行级别

init N:进入某运行级别,一般的可以在3和5之间进行切换,但是0,1,6均谨慎进入;

四、远程联机服务

1、非对称加密介绍

                         

最终建立连接后,服务器:『具有服务器的私钥与客户端的公钥』,而客户端则是: 『具有服务器的公钥以及客户端自己的私钥』,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称式密钥系统;

PS:服务器的ssh服务,其提供的公钥与自己的私钥都放置于 /etc/ssh/ssh_host*,且每次重启sshd都重新生成新的公钥、私钥;

2、远程登录命令

ssh   root@主机IP,之后会询问登录密码,登陆后即登录到目标主机;

PS:在客户端服务器的 ~/.ssh/known_hosts中记录着目标主机的公钥信息,每次登录目标主机均会到该目录 下查询有无目标主机的公钥信息,若有信息则直接登录,若无信息则询问是否记录该公钥,记录后则登录,若信息不对,则退出登录。

3、档案异地直接复制SCP

若知道目标主机上的文件名称及目录,则可以通过SCP命令进行异地直接复制。

[root@www ~]# scp   [-pr]     file   [账号@]主机:目录名                 上传,即把客户端的文件拷贝到目标主机的指定目录下
[root@www ~]# scp   [-pr]     [账号@]主机:file     目录名               下载,即把目标主机上的文件拷贝到客户端指定目录下
选项与参数:
-p :保留原本档案的权限数据;
-r :复制来源为目录时,可以复制整个目录 (含子目录)

4、远程免密连接的建立

由于远程拷贝需要密码,因此可以使用私钥配对的方式建立免密连接,步骤如下:

(1)在客户端上,建立公钥、秘钥对,使用命令ssh-keygen   -t    rsa|dsa(即可以指定加密的算法,不指定则为rsa,可以不写-t   rsa)

(2)将客户端上的公钥远程拷贝到目标主机的家目录下  scp   /root/.ssh/id_rsa.pub   root@192.168.1.121:~

(3)在目标主机上建立~.ssh目录,权限为700;将家目录下的id_rsa.pub追加到~.ssh/authorized_keys中,且chmod  644  /root/.ssh/authorized_keys

建立完成,则之后远程时不再需要密码。

5、允许及禁止远程登录的设定

在/etc/hosts.allow和/etc/hosts.deny中可设定可远程该机器的IP,如下

[root@www ~]# vim /etc/hosts.allow
sshd: 127.0.0.1     192.168.1.0/255.255.255.0    192.168.100.0/255.255.255.0
[root@www ~]# vim /etc/hosts.deny
sshd : ALL

6、以rsync进行远程备份

rsync不但传输得快,而且可以比对本地端与远程主机欲复制的档案内容,而仅复制两端有差异的档案,所以传输的时间就相对的降低很多。rsync的语法如下:

[root@www ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
选项与参数:
-v :观察模式,可以列出更多的信息,包括镜像时的档案档名等;
-q :与 -v 相反,安静模式,略过正常信息,仅显示错误讯息;
-r :递归复制!可以针对『目录』来处理!很重要!
-u :仅更新 (update),若目标档案较新,则保留新档案不会覆盖;
-l :复制链接文件的属性,而非链接的目标源文件内容;
-p :复制时,连同属性 (permission) 也保存不变!
-g :保存源文件的拥有群组;
-o :保存源文件的拥有人;
-D :保存源文件的装置属性 (device)
-t :保存源文件的时间参数;
-I :忽略更新时间 (mtime) 的属性,档案比对上会比较快速;
-z :在数据传输时,加上压缩的参数!
-e :使用的信道协议,例如使用 ssh 通道,则 -e ssh
-a :相当于 -rlptgoD ,所以这个 -a 是最常用的参数了!

因此,可以在单独的rsync服务器上,泡一个脚本,用来定时复制远程主机上的文件到本机的指定目录,一般用来做日志的备份;

示例:利用 student 的身份登入 clientlinux.centos.vbird 将家目录复制到本机 /tmp
[root@www ~]# rsync -av -e ssh student@192.168.100.10:~ /tmp  

student@192.168.100.10's password:    <==输入对方主机的 student 密码
receiving file list ... done
student/
student/.bash_logout
....(中间省略)....
sent 110 bytes received 697 bytes 124.15 bytes/sec
total size is 333 speedup is 0.41
[root@www ~]# ll  -d  /tmp/student
drwx------. 4 student student 4096 Jul 26 16:52 /tmp/student

rsync 是透过 ssh 来传输资料的,所以你可以针对 student 这个家伙制作出免用密码登入的ssh 密钥! 如此一来往后异地备援系统就能够自动的以 crontab 来进行备份。

示例二:例题:在 clientlinux.centos.vbird (192.168.100.10) 上面,使用 vbirdtsai 的身份建立一只脚本,这只脚本可以在每天的 2:00am 主动的以 rsync 配合 ssh 取得 www.centos.vbird (192.168.100.254) 的 /etc, /root, /home 三个目录的镜像到 clientlinux.centos.vbird 的 /backups/ 底下。
答:由于必须要透过 ssh 通道,且必须要使用 crontab 例行工作排程,因此肯定要使用密钥系统的免密码账号。我们在 11.2.6 小节已经谈过相关作法, vbirdtsai
net.qiang@hotmail.com已经有了公钥与私钥档案,因此不要再使用 ssh-keygen 了,直接将公钥档案复制到 www.centos.vbird 的 /root/.ssh/ 底下即可。实际作法可以是这样的:
# 1. 在 clientlinux.centos.vbird 将公钥档复制给 www.centos.vbird 的root
[vbirdtsia@clientlinux ~]$ scp  ~/.ssh/id_rsa.pub  root@192.168.100.254:~
# 2. 在 www.centos.vbird 上面用 root 建置好 authorized_keys
[root@www ~]# ls -ld id_rsa.pub .ssh
-rw-r--r--. 1 root root 416 Jul 26 16:59 id_rsa.pub    <==有公钥档
drwx------. 2 root root 4096 Jul 25 11:44 .ssh      <==有 ssh 的相关目录
[root@www ~]# cat  id_rsa.pub  >>  ~/.ssh/authorized_keys
[root@www ~]# chmod 644  ~/.ssh/authorized_keys
# 3. 在 clientlinux.centos.vbird 上面撰写 script 并测试执行:
[vbirdtsai@clientlinux ~]$ mkdir ~/bin ; vim ~/bin/backup_www.sh
#!/bin/bash
localdir=/backups
remotedir="/etc /root /home"
remoteip="192.168.100.254"
[ -d ${localdir} ] || mkdir ${localdir}
for dir in ${remotedir}
do
rsync -av -e ssh root@${remoteip}:${dir} ${localdir}
done
[vbirdtsai@clientlinux ~]$ chmod 755 ~/bin/backup_www.sh
[vbirdtsai@clientlinux ~]$ ~/bin/backup_www.sh
# 上面在测试啦!第一次测试可能会失败,因为鸟哥忘记 /backups 需要 root的权限才能够建立。所以,请您再以 root 的身份去 mkdir 及 setfacl 吧!
# 4. 建立 crontab 工作
[vbirdtsai@clientlinux ~]$ crontab -e
0 2 * * * /home/vbirdtsai/bin/backup_www.sh

PS:对于谁是对象的说明,前一个为操作的对象,后一个是要拷贝到的目录,详细如下:

(1)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src 

(2)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data 

(3)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack 

(4)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www

五、文件权限的数字设定

r 代表读(read),w 代表写(write),x 代表执行(execute)

读,权限是二进制的100,十进制是4;
写,权限是二进制的010,十进制是2;
执行,权限是二进制的001,十进制是1;

具备多个权限,就把相应的 4、2、1 相加就可以了:
若要 rwx 则 4+2+1=7
若要 rw- 则 4+2=6
若要 r-x 则 4+1=5
若要 r-- 则 =4
若要 -wx 则 2+1=3
若要 -w- 则 =2
若要 --x 则 =1
若要 --- 则 =0

Linux下权限设置一共十个字符,分成四段。

例如:

-rw-rw-r--

第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录

第二三四个字符“rw-”表示当前所属用户的权限。   所以用数值表示为4+2=6,也就是110

第五六七个字符“rw-”表示当前所属组的权限。      所以用数值表示为4+2=6,也就是110

第八九十个字符“r--”表示其他用户权限。              所以用数值表示为2,也就是100

所以操作此文件的权限用数值表示为662


  
























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值