加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux基础知识-week5

发布时间:2020-12-14 00:13:28 所属栏目:Linux 来源:网络整理
导读:1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.tar.gz" 先测试命令 tar -zcPf /backup/etc-$(date +%Y-%m-%d-%H-%M-%S).tar.gz /etc/* 这里的参数P,表示使用绝对路径 [[email?protected] ~]# ls /backup etc-20

1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.tar.gz"

先测试命令

tar -zcPf /backup/etc-$(date +%Y-%m-%d-%H-%M-%S).tar.gz /etc/*

这里的参数P,表示使用绝对路径

[[email?protected] ~]# ls /backup

etc-2019-08-18-02-13-27.tar.gz

命令执行成功

然后编辑/etc/crontab文件,创建任务

2、rpm包管理功能总结以及实例应用演示。

rmp命令:rpm [options] [package_file]

?????????????? 安装: -i 或者- - install

?????????????? 升级: -U –update -F –freshen

?????????????? 卸载: -e ?-- erase

?????????????? 查询 -q --query

?????????????? 校验: -V - - verify

?????????????? 数据库维护:- - builddb,- - initdb

(1)安装

 rpm {-i|--install} [install-options] PACKAGE_FILE ...

      -v Print verbose information 输出安装信息

      --test -Do not install the package,simply check for and report potential conflicts.

      不实际安装rpm包

?

(2)重新安装

 [--replacefiles] [--replacepkgs]

               --replacepkgs 其实是一个install option

              Install the packages even if some of them are already installed on this system.

?

(3)升级

?????????????? rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

?????????????? 升级或安装

?????????????? rpm {-F|--freshen} [install-options] PACKAGE_FILE ..

?????????????? This will upgrade packages,but only ones for which an earlier version is installed.

?????????????? 只升级

如果某源程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名后提供,filename.rpmnew

(4) 卸载

rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]

?????????? [--notriggers] [--test] PACKAGE_NAME ...

?????????????? -e --erase?? package_name

?????????????? --allmatches:卸载所有匹配指定名称的程序包的各版本

?????????????? --test: 测试卸载 dry run模式

(5)? 查询

rpm {-q|--query} [select-options] [query-options]

    select options:

?????????????? package_name: 查询指定的程序是否包已经安装,以及版本

?????????????? -a ??--all:所有的包

?????????????? -f ?--file Query package owning FILE.

????????????????????????????? 查询指定的文件由哪个程序包安装生成

?????????????? {-p,--package PACKAGE_FILE]

?????????????? Query an (uninstalled) package PACKAGE_FILE. 需要结合query options使用

?????????????? --whatprovides capability 指定的capability有哪些程序包提供

?????????????? --whatrequires capability查询指定的capability被哪个包所依赖

    query options:

?????????????? [--changelog] ?查询rpm的changelog

?????????????? [-c,--configfiles] 查询指定的程序的配置文件

??????? ?????? [-d,--docfiles] ?查询指定的程序包提供的文档

???????????? ?[--provides] List capabilities this package provide

??????? ?????? [-R,--requires] 查询程序包的依赖关系

??????? ?????? [--scripts] 查看程序包自带的脚本

?????????????? -i,--info Display package information,including name,version,and description.

?????????????? 例如我们要查询一个已安装的rpm包的信息,可以如下使用:

?????????????? rpm -qi package_name

?????????????? 如果要查询一个未安装rpm包的信息呢:

?????????????? rpm??????? -qpi package_name

(6) 校验

rpm {-V|--verify} [select-options] [verify-options]

获取并导入新的包制作者的密钥

centOS7:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

安装程序包时会自动验证

也可以手动验证

rpmkeys --import PUBKEY ...

rpmkeys {-K|--checksig} PACKAGE_FILE ...

可以在rpmkeys中查看相关信息

(7)rpm数据库管理

rpm数据库在: /var/lib/rpm,所有的查询都是通过此数据库进行

rpm {--initdb|--rebuilddb}

?

3、yum的配置和使用总结以及yum私有仓库的创建。

yum [options] [command] [package ...]

要使用yum,需要编辑yum的配置文件,提供yum源,两个配置文件为:

/etc/yum.comf? 为所有仓库体提供公共配置

/etc/yum.repos.d/*.repo 指定具体的yum reposity

具体的使用命令

yum [options] [command] [package ...]

显示仓库列表:?????????????

?????????????? yum repolist [all|enabled|disabled]

显示程序包

?????????????? yum list [all | blob_exp1] [blob_exp2] […]

?????????????? yum list {available|installed|updated} [blob_exp1]

安装程序包

?????????????? yum install package

重新安装

?????????????? reinstall

升级程序包

?????????????? update

降级

?????????????? downgrade

检查可用升级

?????????????? check-update

卸载程序包

?????????????? remove

查看程序包information

?????????????? info

查看指定的特性(可以是某文件)是由哪个程序包提供的

?????????????? provides | whatprovides feature1 …

清理本地缓存

?????????????? clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

构建缓存

?????????????? mackcache

搜索

?????????????? search string1

?????????????? 以指定的关键字搜索程序包名及summary信息

显示依赖关系

?????????????? ?deplist

版本信息

?????????????? version

查看yum事务历史

?????????????? history

包组管理

?????????????? groupinstall grouyp1

?????????????? groupupdate?????? group

?????????????? grouplist

?????????????? groupremove

?????????????? groupinfo

创建本地yum源

(1)挂载光驱至/media/cdrom

?????????????? mkdir /media/cdrom

    mount -r /dev/cdrom /media/cdrom

    查看cdrom中的内容

确认目录中repodata

(2)创建local.repo

在/etc/yum.repos.d创建新的本地源

vim local.repo,或者编辑/etc/yum.repos.d/CentOS-Media.repo

这里已经指定了baseurl,只需要修改enabled=1即可

4、写一个脚本实现列出以下菜单给用户

(1)disk:show?disk?info信息
(2)mem:?show?memory?info信息
(3)cpu:?show?cpu?info信息
(*)quit

#!/bin/bash
#

cat << EOF

disk) show disks info

mem) show memory info

cpu) show cpu info

*) QUIT

EOF

 
read -p "Your choice: " option

if [[ "$option" == "disk" ]];then

            fdisk -l /dev/[sh]d[a-z]

elif [[ "$option" == "mem" ]];then

            free -m

elif [[ "$option" == "cpu" ]];then

            lscpu

else

            echo "Unknown option"

            exit 3

fi

5、sed用法总结并结合实例演示

sed [option]… ‘scripts’ [input-file]

常用选项:

?????????????? -n : 不输出模式空间中的内容至屏幕????

?????????????? -e script,--expression=script: 多点编辑

?????????????? -f /path/to/sed_script_file

?????????????? -r –regexp-extended : 支持扩展正则表达式

?????????????? -i[SFFIX],--in-place[=SUFFIX]: 直接编辑原文件

地址定界:

?????????????? (1) 不给地址:对全文进行处理

?????????????? (2) 单地址:

????????????????????????????? #: 指定行

????????????????????????????? /pattern/: 被此模式所匹配到的每一行

?????????????? (3) 地址范围

????????????????????????????? #,#

????????????????????????????? #,+#

????????????????????????????? #,/pattern1/

????????????????????????????? /pattern1/,/pattern2/

????????????????????????????? $ 最后一行

?????????????? (4) 步进: ~

????????????????????????????? 1~2 所有奇数行

????????????????????????????? 2~2 所有偶数行

编辑命令:

?????????????? d: 删除

?????????????? 例如 sed ‘1,5d’ /etc/fstab,第1-5行没有输出

?

?

   p: print he current pattern space 显示模式空间中的内容

  ?? a text: append? 在行后面追加文本text,支持使用n实现多行追加?

   I text: insert 在行前面插入文本text

例如在第三行前面插入一行

  c text: 把匹配到的行替换为此处指定的文本

  w /path/to/somefile: 保存模式空间匹配到的行至指定的文件中

  r /path/from/somefile 读取指定文件的内容至当前模式匹配的行处, 文件合并

  =: 为模式空间匹配到的行打印行号

  ! : 条件取反 ???地址定界!编辑命令

  s///: 查找替换,其分隔符可以自行指定,常用的有[email?protected]@@,s###等

  g: 全局替换

?????? w /path/to/somefile 将替换成功的结果保存至指定文件中

?????? p: 显示替换成功的行

6、?用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序

这个日志文件能提供一下吗

7、?使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包

(1) 自建一个yum目录 mkdir /myyum,设置为yum源

(2) copy几个RPM包至此目录,例如 ftp-0.17-67.el7.x86_64.rpm

(3) 创建自己的yum源

createrepo /myyum/

(4)编辑配置文件

[myyum]

name=my local yum

baseurl=file:///myyum/

gpgcheck=0

(5)检测更新yum源

yum repolist

已经添加上

现在安装ftp yum install ftp

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读