sed,rpm yum bash基础

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

[root@www backup]# crontab -l
##每12小时备份一下/etc 到/backup中
0 */12 * * * tar -czvf /backup/etc-`date +%Y-%m-%d-%H-%M.tar.gz` /etc

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

rpm包查询、安装、卸载、仓库的建立
rpm命令:

		rpm [OPTIONS] [PACKAGE_FILE]
			-i 安装
			-h 显示进度条
			-U 升级
			-e 卸载
			-v 详细信息
			-vv 更详细的信息

	rpm -q PACKAGENAME

    -a 列出所有已安装包

    -f /PATH/TO/FILE 查询这个文件由哪个程序包提供

    -p 用于实现对未安装的包查询

    --changelog 查看升级日志

    -l 列出程序包所生成的所有文件

    -i 列出程序基本信息

    -c 查询配置文件

    -d 查询帮助文档

    --provides 能力查询

    -R 查询所有依赖包

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

/etc/yum.conf:为所有yum仓库提供公共配置

		[main]    主配置
		cachedir=/var/cache/yum/$basearch/$releasever 	缓存文件鹿路径
		keepcache=0   									是否保存缓存本地文件
		debuglevel=2 									调试级别	
		logfile=/var/log/yum.log  						安装日志的文件
		exactarch=1										精确严格的平台release匹配
		obsoletes=1										update的参数 允许更新陈旧的rpm包
		gpgcheck=1										检测来源合法性和完整性
		plugins=1										支持插件机制
		installonly_limit=5								同时安装多少程序包
		bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum	 追踪bug路径
		distroverpkg=centos-release 					当前版本号

/etc/yum.repos.d/*.repo:为仓库的指向提供配置

	[repositoryID]  					#仓库ID
	baseurl=url://path/to/repository/  	# yum仓库指明的访问路径
	gpgcheck=0  						#不检查完整性和来源合法性

yum repolist 显示仓库列表
yum list 显示程序包
yum search 模糊查找程序包
yum install 安装程序包
yum remove 卸载程序包
yum update [package1] [package2] […] 升级操作
yum downgrade package1 [package2] […] 降级操作
yum info [package1] [package2] […] 查看程序包简要信息
yum provides | whatprovides feature1 [feature2] […] 查看指定的特性(可以是某文件)是由哪个程序包所提供
yum clean <packages | metadata | expire-cache | rpmdb | plugins | all > 清理本地缓存

---配合group可以用于一起安装
	yum  groupinstall group1 [group2] [...]     安装包组
    yum  groupupdate group1 [group2] [...]    升级包组
    yum  grouplist [hidden] [groupwildcard] [...]   显示包组列表
    yum  groupremove group1 [group2] [...]     移除包组
    yum  groupinfo group1 [...]   显示包组信息

创建私有yum仓库

	备份原yum源
		mkdir /etc/yum.repos.d.bak  
		mv /etc/yum.repos.d/* /etc/yum.repos.d.bak/
		vim /etc/yum.repos.d/my.repo
			[mybase]        
			name=LocalYum        
			baseurl=file:///mnt/cdrom 可以使用挂载光盘的        
			gpgcheck=0        
			enabled=1
	或者使用createrepo

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

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

vim display_info.sh
	#!/bin/bash
	#
	while  true
	do
	cat << END
	===========================
	1 > display disks info
	2 > display memory info
	3 > show cpu info
	4 > quit
	---------------------------
	END

	read -p  "请选择 "  option

	case $option in
	1)
	      fdisk -l /dev/sd[a-z];;
	2)
	      cat /proc/meminfo;;
	3)
	      lscpu;;
	4)
	      exit 1;;
	*)
	      echo " Useage [1-4]";;
	esac
	done

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

sed [OPTION]...'script' [input-file]
script:地址定界编辑命令
	-n:不输出模式空间中的内容至屏幕;
	-e script, --expression=script:多点编辑;能指定多个编辑命令
	-f /PATH/TO/SED_SCRIPT_FILE每行一个编辑命令;
	-r, --regexp-extended:支持使用扩展正则表达式;
	-i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ;
	地址定界:
		1)空地址:什么都不填写时,表示对全文进行处理
		2)单地址
		     #:表示对指定的行
		   /pattern/:被此模式所匹配到的每一行,其中模式两边的/不能省略
	地址范围:
		 	#,#:从某行到某行,第二个#大于第一个#
		   #,+#:从某行开始加多商行
		   #,/pattern1/:从某行开始到第一次配到模式的行
		   /pattern1/,/pattern2/:从第一次匹配到的模式1到第二次匹配模式2

		   步进:~,#~#   从第几行
		   1~2:所有奇数行。从第一行开始,每次加两行读取
		   2~2:所有偶数行。从第二行开始,每次加两行读取
	编辑命令
		d:删除
		p:显示模式空间中的内容
		a \text :在行后面追加文本“text”,支持使用\n实现多行追加
		i \text:在行前面追加文本“text”,支持使用\n实现多行追加
		c \text:把匹配到的行替换为此处指定的文本“text”
		w /path/somefile:保存模式空间匹配到的行至指定的文本中
		r /path/from/somefile:读取指定文件的内容至当前文件被匹配到的行后面;文件合并
		=:为模式匹配到的行打印行号
		!:条件取反
		s///:查找替换,其分隔符可自行指定,常用的有s@@@ ,s###
		  替换标记:
		    g:全局替换
		    w /path/somefile:将替换成功的结果保存至指定的文本中
		    p:显示替换成功的行

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

	比如以nginx的访问日志可以
	#!/bin/bash
	nginx_log='/var/log/nginx/access.log'
	code_400_num=$(grep -o '[4|5][0-9][0-9]' ${nginx_log} | wc -l)
	code_400_sort=$(grep '[4|5][0-9][0-9]' ${nginx_log} | sort)
	echo $code_400_num
	echo $code_400_sort

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

	mkdir /myrepo
	随便找点包放进去
	cp /opt/centos/Packages/ftp openssh curl tcpdump /myrepo
	createrepo /myrepo
	修改repos.d文件
	
	vim /etc/yum.repos.d/my.repo
	    	[mybase]        
			name=myrepo        
			baseurl=file:///myrepo/ 可以使用挂载光盘的        
			gpgcheck=0        
			enabled=1
	安装
	yum install -y ftp openssh curl wget tcpdump
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值