拓展练习部分---打包压缩 及 RPM工具

目录

  • 打包压缩部分
    • 1.linux下常见的压缩包类型有哪些
  • rpm 工具部分

打包压缩部分

1.linux下常见的压缩包类型有哪些

.zip
.gz      会删除源文件
.bz2     会删除源文件
.tar.gz
.tar.bz2

2.将/etc/hosts文件用tar格式打包。

[root@centos7 ~]# cd /
[root@centos7 /]# tar czf hosts.tar.gz etc/hosts

3.查看打包之后的/etc/hosts的文件内容,在不解压的情况下查看。

[root@centos7 /]# tar tf hosts.tsr.gz

4.使用tar打包/var/log/目录。

[root@centos7 /]# tar czf log.tar.gz var/log

5.使用zip打包/etc目录。

[root@centos7 /]# zip -r etc.zip etc/

6.查看/var/log/目录的压缩包中有哪些内容。

[root@centos7 /]# tar tf log.tar.gz

7.将/var/log/目录解压到/opt目录中。

[root@centos7 /]# tar xf log.tar.gz -C /opt

8.查看/etc/目录的压缩包的压缩率。

[root@centos7 /]# du -sh /etc/
32M /etc/
[root@centos7 /]# du -sh /etc.zip
14M /etc.zip
[root@centos7 ~]# awk 'BEGIN{print 14/32*100"%"}'
43.75%

9.查看/etc/目录的压缩包的内容是否完好。

[root@centos7/]# zip -T  etc.zip   #查看压缩包整体的情况
[root@centos7/]# unzip -t etc.zip    #检查压缩包里面的内容

10.解压/etc/目录到/opt目录中。

[root@centos7 ~]# unzip etc.zip  -d /opt/

11.用zip打包/opt目录,要求不显示打包过程。

[root@centos7 /]# zip -qr opt.zip /opt

12.打包/etc/目录,要求是.bz2格式

[root@centos7 /]#  tar cjf etc.tar.bz2 /etc/

13.打包/var/log目录,要求是.xz格式

[root@centos7 /]# tar cJf  log.tar.xz /var/log/

14.使用tar命令打包/etc/时,会出现一个删根的操作,怎样打包不会进行删根的操作

[root@centos7 ~]# tar czPf etc.tar.gz /etc

15.打包/etc/目录,要求不打包/etc/hosts这个文件。

[root@centos7 /]#  tar czf etc.tar.gz --exclude=etc/hosts etc/

16.打包/etc/目录,要求不打包/etc/hosts和/etc/hostname这两个文件。

[root@centos7 /]# tar czf etc.tar.gz --exclude=etc/hosts,etc/hostname etc/

17.打包/etc/目录,但要排除passwd,shadow,group,gshadow,hosts,hostname这些文件。(你能用两种方法实现吗)

[root@centos7 /]# tar czf etc.tar.gz --exclude=etc/{passwd,shadow,group,gshadow,hosts,hostname} /etc

[root@centos7 /]# vim etc.txt
[root@centos7 /]# tar czfX /etc.tar.gz etc.txt /etc

18.已知/etc/grub2.cfg文件是个软连接文件,在你不知道的情况下,请问怎么打包该文件的真实文件。

[root@centos7 etc]# ll -h /etc/grub2.cfg
[root@centos7 /]# tar czfh grub2.tar.gz  etc/grub2.cfg

19.把/var/log/目录中所有.log的文件进行打包成一个压缩包,名称定义为log.tar.gz的压缩包。

[root@centos7 /]# find /var/log/ -type f -name '*.log*'|xargs tar czf log.tar.gz

20.已知文件oldboy.zip,请问在不解压的情况下,怎样查看该文件的内容。

[root@centos7/]# unzip -l oldboy.zip

21.打包/etc/目录,命令以ip地址+当前时间方式的压缩包:比如: 10.0.0.100_2019-07-08_etc.tar.gz

[root@centos7 ~]# tar zcf $(ifconfig ens33|awk 'NR==2{print $2}')_$(date +%F)_etc.tar.gz /etc

# date +%F (年月日)       date +%T (十分秒)
[root@centos7 ~]# date +%T
19:38:50
[root@centos7 ~]# date -d '-1day'  (显示的结果会减1天,以后备份日志有用)
Mon Jul  8 19:42:07 CST 2019

22.创建/data/bak目录,然后复制如下文件到/data/bak目录下

/etc/hosts
/etc/resolv.conf
/etc/fstab
/etc/bashrc
/etc/profile
/etc/rc.local
/etc/sudoers

[root@centos7 /]# mkdir -p /data/bak
[root@centos7 /]#  touch /etc/{hosts,resolv.conf,fstab,bashrc,profile,rc.local,sudoers}|xargs cp -t /data/bak

23.接22题,使用tar命令对/data/bak目录下的文件及目录以gzip的格式进行归档压缩到/data目录下(压缩包的名字以自己名字命名)

[root@centos7 ~]# tar czf /data/gjy.tar.gz /data/bak/

24.使用tar命令查看上题/data目录下压缩包内的内容。

[root@centos7 /]# tar tf /data/gjy.tar.gz

25.把第23题/data目录下的压缩包,解压到/backup目录下

[root@centos7 /]# tar xf /data/gjy.tar.gz  -C /backup

26.再次使用tar命令把/data/bak目录下的文件及目录以gzip的格式进行归档压缩到/data目录下,但是在进行归档压缩时,排除文件“sudoers”,然后查看该压缩包内容是否存在文件“sudoers”(压缩包名自行拟定)

[root@centos7 ~]# tar czf /data/bak.tar.gz --exclude=/data/bak/sudoers  /data/bak/   

27.打包/etc目录下所有普通文件到root用户家目录。

[root@centos7 ~]# find /etc -type f | xargs tar zcf /root/etc.tar.gz  

28.打包/etc/目录到/opt/目录下,名称要求以当前主机名和ip地址命名,例:oldboy_10.0.0.100.tar.gz

[root@centos7 ~]# tar zcf /opt/$(hostname)_$(ifconfig ens33|awk 'NR==2 {print $2}').tar.gz /etc/

29.如何使用gzip命令对文件进行压缩、解压

#压缩file1
[root@centos7 ~]# gzip file1
#解压文件
[root@centos7 ~]# gzip -d file1.gz

30.如何用zip命令对文件以及目录进行压缩、解压

# 压缩文件
[root@centos7 ~]# zip  filename.zip  filename
#压缩目录
[root@centos7 ~]# zip -r  dir.zip dir/
#解压文件或者目录
[root@centos7 ~]# unzip  filename.zip

31.创建一个自己名字的文件至/opt目录

touch /opt/gjy.txt

32.打包opt整个目录,并命名test_opt.tar.gz

[root@centos7 /]#  tar zcf test_opt.tar.gz  /opt 

33.查看打包好的test_opt.tar.gz里的文件

[root@centos7 /]# tar tf  test_opt.tar.gz

34.将打包好的test_opt.tar.gz内容指定解压至/tmp目录

[root@centos7 ~]# tar xf test_opt.tar.gz  -C /tmp

35.打包etc目录下的所有文件,不要目录只要文件

[root@centos7 ~]# find /etc/ ! -type d |xargs tar zcf etc.tar.gz

36.打包etc目录下的所有文件,排除passwd,shadow

[root@centos7 ~]# find /etc -type f|xargs tar czf etc.tar.gz --exclude=etc/{passwd,shadow} 

37.打包etc目录下的所有以p开头的文件

[root@centos7 /]# find etc/ -type f -name 'p*' |xargs tar zcf etc.tar.gz

38.打包etc目录下所有大于1M的文件

[root@centos7 /]# find etc/ -type f -size +1M |xargs tar zcf etc.tar.gz

rpm 工具部分

1.将你的镜像设备挂载到/mnt目录上

[root@centos7 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0 is already mounted or /mnt busy
       /dev/sr0 is already mounted on /mnt
[root@centos7 ~]# ls /mnt/
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7
GPL              Packages  TRANS.TBL

2.使用rpm命令安装tree这个软件。

[root@centos7 ~]# cd /mnt/Packages
[root@centos7 Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
Preparing...                          ################################# [100%]
    package tree-1.6.0-10.el7.x86_64 is already installed

3.查看你的服务器中是否安装httpd这个软件。

[root@centos7 ~]# rpm -q httpd
package httpd is not installed

4.接上题,如果没有请用rpm进行安装。(如果出现报错,请百度,做不出来,没有关系。)

1  rpm -ivh /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.
 2  rpm -ivh /mnt/Packages/httpd-tools-2.4.6-88.el7.centos.
 3  rpm -ivh /mnt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm 
 4  rpm -ivh /mnt/Packages/apr-util*
 5   rpm -ivh /mnt/Packages/apr-1.4.8-3.el7_4.1.x86_64.rpm
 6  rpm -ivh /mnt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm 
 7  rpm -ivh /mnt/Packages/httpd-tools-2.4.6-88.el7.centos.
 8  yum search mime.types
 9  rpm -ivh /mnt/Packages/mailcap-2.1.41-2.el7.noarch.rpm 
 10  rpm -ivh /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64

5.启动httpd这个服务,然后用你的10.0.0.0这个网段的IP在浏览器上面进行访问,看看是否有结果,如果没有,请关闭你的防火墙

1. systemctl stop firewalld 
2.  systemctl start httpd
3  ss -lntp
4  curl 10.0.0.100

6.查看httpd这个软件包里面的内容。

[root@centos7 Packages]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
...

7.查看httpd这个软件的配置文件是哪个

[root@centos7 Packages]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd

8.查看httpd这个软件包的详细信息。

[root@centos7 Packages]# rpm -qi httpd
Name        : httpd
Version     : 2.4.6
Release     : 88.el7.centos
Architecture: x86_64
Install Date: Tue 09 Jul 2019 03:57:58 PM CST
Group       : System Environment/Daemons
Size        : 9817309
License     : ASL 2.0
Signature   : RSA/SHA256, Mon 12 Nov 2018 10:28:53 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-88.el7.centos.src.rpm
Build Date  : Mon 05 Nov 2018 09:48:57 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem 
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server

9.查看一下netstat这个命令属于哪个软件包

[root@centos7 ~]# which netstat
/usr/bin/netstat
[root@centos7 ~]# rpm -qf `which netstat`
net-tools-2.0-0.24.20131004git.el7.x86_64

10.查看你的服务器中是否安装sl这个命令,如果有请使用rpm进行删除,没有就先安装再删除。

[root@centos7 ~]# rpm -q sl
package sl is not installed
[root@centos7 ~]# yum install -y sl
[root@centos7 ~]# rpm -e sl

11.联网下载mongodb这个软件,网站地址:https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/版本号为3.0.0主包名称为:mongodb-org (如果出现报错,请百度,做不出来,没有关系。)

[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-3.0.0-1.el7.x86_64.rpm 
[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-mongos-3.0.0-1.el7.x86_64.rpm
[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-server-3.0.0-1.el7.x86_64.rpm
[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-shell-3.0.0-1.el7.x86_64.rpm
[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-tools-3.0.0-
[root@centos7 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-3.0.0-1.el7.x86_64.rpm
[root@centos7 ~]# mongo -version
MongoDB shell version: 3.0.0

13.列举一下rpm的常用选项有哪些?

rpm -ivh    # 安装
rpm -Uvh    # 升级
rpm -e      # 删除
rpm -q      #查看指定软件包是否安装
rpm -qa     #查看系统中已安装的所有RPM软件包列表
rpm -qi     #查看指定软件的详细信息
rpm -ql     #查询指定软件包所安装的目录、文件列表
rpm -qc     #查询指定软件包的配置文件
rpm -qd     #查询指定软件包的帮助文档
rpm -qf     #查询文件或目录属于哪个RPM软件
rpm -q --scripts    #查询rpm包安装前和安装后执行的脚本


#查询未安装的软件包信息
rpm -qip    //查询未安装的rpm包详细信息
rpm -qlp    //查询未安装的软件包会产生哪些文件

14.已知,服务器关机重启之后,挂载的设备就会被自动的卸载掉,那么怎样让挂载的磁盘在服务器开机的时候就自动挂载上呢?

[root@centos7 ~]# cd /mnt/Packages
[root@centos7 Packages]# blkid /dev/cdrom
/dev/cdrom: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
[root@centos7 Packages]# vim /etc/fstab
UUID=2018-11-25-23-54-16-00 /mnt xfs defaults 0 0

15.卸载你所挂载的设备,/dev/cdrom下面几题请使用yum命令

 rpm -e 

16.yum安装rsync这个软件。

[root@centos7 ~]# yum install -y rsync

17.安装多个软件,例如sl、lsof、net-tools、nmap等

yum install -y sl lsof net-tools nmap

18.删除sl这个命令

[root@zls ~]# yum remove sl -y

19.查看一下ping这个命令属于哪个软件包

[root@centos7 ~]# yum provides ping

20.查看你的服务器中有哪些可用的yum源仓库。

[root@centos7 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id                                                       
base/7/x86_64                                                 
extras/7/x86_64                                               
updates/7/x86_64                                              
repolist: 12,669

21.根据mysql命令 查找 mysql的配置文件在哪?

[root@centos7 ~]# rpm -qc $(rpm -qf `which mysql`)
/etc/my.cnf.d/client.cnf

22.根据/etc/hostname找出修改主机名的命令?

[root@centos7 ~]# rpm -ql $(rpm -qf $(which hostname))
/bin/dnsdomainname
/bin/domainname
/bin/hostname
/bin/nisdomainname
/bin/ypdomainname
/usr/share/doc/hostname-3.13
/usr/share/doc/hostname-3.13/COPYRIGHT
/usr/share/man/man1/dnsdomainname.1.gz
/usr/share/man/man1/domainname.1.gz
/usr/share/man/man1/hostname.1.gz
/usr/share/man/man1/nisdomainname.1.gz
/usr/share/man/man1/ypdomainname.1.gz

23.找到nginx的rpm包,安装上,并列出nginx的相关命令路径,以及配置文件,还有站点目录

[root@centos7 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@centos7 ~]# yum -y install nginx
[root@centos7 ~]# which nginx
[root@centos7 Packages]# rpm -ql $(rpm -qf `which nginx`)|grep index
/usr/share/nginx/html/index.html

转载于:https://www.cnblogs.com/gongjingyun123--/p/11188941.html

你可能感兴趣的:(拓展练习部分---打包压缩 及 RPM工具)