linux计划任务和yum
- 1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,“etc-年-月-日-时-分.tar.gz”、
- 2、rpm包管理功能总结以及实例应用演示
- 3、yum的配置和使用总结以及yum私有仓库的创建
- 4、写一个脚本实现列出以下菜单给用户:
(1)disk:show disk info信息
(2)mem: show memory info信息
(3)cpu: show cpu info信息
(*)quit - 5、sed用法总结并结合实例演示
- 6、 用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序
- 7、 使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包
每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,“etc-年-月-日-时-分.tar.gz”
[root@localhost backup]# tar -czv -f /backup/etc-"$(date +%F-%H-%M)".tar.gz /etc #测试基本命令是否可以正确运行
[root@localhost backup]# crontab -e #编辑循环任务0 */12 * * * tar -czv -f /backup/etc-"$(date ++%F-%H-%M)".tar.gz /etc
rpm包管理功能总结以及实例应用演示
二进制应用程序的组成部分:
二进制文件、库文件、配置文件、帮助文件
程序包管理器:
debian:deb文件,dpkg包管理器
redhat:rpm文件,rpm包管理器
rpm:Redhat Package Manager
RPM Package Manager
UEFI(统一扩展固件接口)硬件支持GPT,使操作系统启动
软件运行和编译:
ABI:Application Binary Interface
WINDOWS和Linux不兼容
ELF
PE
库级别的虚拟化:
Linux:WINE
Windows:Cygwin
API:Application Prigramming Interface
POSIX:Portable OS
程序源代码–>预处理–>编译–>链接
静态编译:.a
动态编译:。so
包命名:
源代码:name-VERSION.tar.gz|bz2|xz
VERSION:major.minor.release
rpm包命名方式:
name-VERSION-release.arch.rpm
例:bash-4.2.46-19.el7.x86)64.rpm
VERSION:major.minor.release
release:release.OS
常见的arch:
x86:i386,i486,i586,i686
x86_64:x86_64,amd64
powerpc:ppc
跟平台无关:noarch
包:分类和拆包
Application-VERSION-ARCH.rpm:主包
Application-devel-VERSION-ARCH.rpm:开发子包
Application-utils-VERSION-ARCH.rpm:其他子包
Application-libs-VERSION-ARCH.rpm:其他子包
包之间:可能存在依赖关系,甚至循环依赖
解决依赖包管理工具
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
zypper:suse上的rpm前端管理工具
dnf:Fedora 18+ rpm 包管理器前端管理工具
包管理器:
程序包管理器:
功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作。
包文件组成(每个包独有)
RPM包内的文件
RPM的元数据,如名称,版本,依赖性,描述等。
安装或卸载时运行的脚本
数据库(公共):/var/lib/rpm
程序包名称及版本
依赖关系
功能说明
包安装后生产的各文件路径及校验码信息
程序包的来源:
管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum,dnf
获取程序包的途径:
(1)系统发版的光盘或官方的服务器:
centos镜像:
https://www.centos.org/download/
(2)项目官方站点
(3)第三方组织:
Fedora-EPEL:http://pkgs.org
(4)自己制作:第三方的建议检查包的合法性
rpm包管理:
centos系统上使用rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护
安装:
rpm{-i|–install}[install-options]PACKAGE_FILE…
-v:verbose
-vv:
-h:以#显示程序包管理执行进度
rpm -ivh PACKAGE_FILE…
[install-options]:
--test:测试安装,但不真正执行安装,即dry run模式
--nodeps:忽略依赖关系
--replacepkgs|replacefiles
--nosignature:不检查来源合法性
--noscripts:不执行程序包脚本
%pre:安装前脚本;–nopre
%post:安装后脚本;–nopost
%pre:安装前脚本;–nopreun
%pre:安装前脚本;–nopostun
rpm包升级:
升级:
rpm{-U|–upgrade}[install -options] PACKAGE FILE…
rpm{-F|–freshen}[install -options] PACKAGE FILE…
upgrade:安装有旧版程序包,则"升级"(如果不存在旧版程序包,则"安装"
fresh:安装有旧版程序包,则"升级"(如果不存在旧版程序包,则不知想升级操作
rpm -Uvh PACKAGE_FILE…
rpm -Fch PACKAGE_FILE…
--oldpackage:降级
--force:强制安装
注意:
(1)不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
包查询:
rpm{-q|–query}[select-options]【query-options】
[select-options]
-a:所有包
-f:查看指定的文件由哪个程序包安装生成
-p rpmfile:针对未安装的程序包文件做查询操作
--whatprovides CAPABILIITY:查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILIITY:查询指定的CAPABILITY由哪个包所依赖
rpm2cpio 包文件|cpio -itv 预览包内文件
rpm2cpio 包文件|cpio -id ”*.conf“ 释放包内文件
[query-options]
--changelog:查询rpm包的changelog
-c:查询程序的配置文件
-d:查询程序的文档
-i:information
-l:查看指定的程序包安装后生成的所有文件
--scripts:程序包自带的脚本
--provides:列出指定程序包所提供的CAPABILITY
-R:查询指定的程序包所依赖的CAPABILITY
常用查询用法:
-qi PACKAGE,-qf FILE,-qc PACKAGE,-ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE,-qpl PACKAGE_FILE,…
-qa
包卸载:
rpm{-e|–erase}[–allmatches]【–nodeps】【–noscripts】【–notriggers】【–test】PACKAGE_NAME…
包校验:
包来源合法性验证及完整性验证
完整性验证:SHA256
来源合法性验证:RSA
公钥加密
对称加密:加密、解密使用同一密钥
emsp; 非对称加密:密钥是成对儿
public key:公钥,公开所有人
secret key:私钥,不能公开
导入 所需要公钥
rpm -k|checksig rpmfile 检查包的完整性和签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7 发行版光盘提供:RPM-GPG-KEY-Centos-7
rpm -qa “gpg-pubkey”
rpm数据库:
数据库重建:
/var/lib/rpm
rom{–initdb|–rebuilddb}
initdb:初始化
如果事先不存在数据库,则新建之
否则,不执行任何操作
rebuildb:重建已安装的包头的数据库索引目录
yum的配置和使用总结以及yum私有仓库的创建
写一个脚本实现列出以下菜单给用户:
(1)disk:show disk info信息
(2)mem: show memory info信息
(3)cpu: show cpu info信息
(*)quit
#!/bin/bash
ch="plese choose the menu(1-4):"
select menu in disk mem cpu quit;docase $menu indisk)df -h break;;mem)free -hbreak;;cpu)lscpubreak;;quit)killall select.shbreak;;*)echo error;;esac
done
sed用法总结并结合实例演示
处理文本的工具sed
Stream EDitor,行编辑器
sed是一种流编辑器 ,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如’D’的特殊命令,那会在两个循环之间情况模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
功能主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等
参考http://www.gnu.org/software/sed/manual/sed.html
sed工具
sed[option]…‘scrept’ inputfile…
常用选项:
-n:不输出模式空间内容到屏幕,即不自动打印
-e:多点编辑
-f:/PATH/SCRIPT_FILE:从指定文件中读取编辑脚本
-r:支持使用扩展正则表达式
-i.bak:备份文件并原处编辑
script:
“地址命令”
地址定界:
(1)不给地址:对全文进行处理
(2)单地址:
#:指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
(3)地址范围:
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
(4)~:步进
1~2奇数行
2~2偶数行
编辑命令:
d:删除模式空间匹配的行,并立即启用下一轮循环
p:打印当前模式空间内容,追加到默认输出之后
a[]text:在指定行后面追加文本(支持使用\n实现多行文本)
i[]text:在行前面插入文本
c[]text:替换行为单行或多行文本
w/path/somefile:保存模式匹配的行至指定文件
r/path/somefile:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理
**sed///:**查找替换,支持使用其他分隔符,s@@@,s###
替换标记:
g:行内全局替换
p:显示替换成功的行
w/path/to/somefile:将替换成功的行保存至文件中
/etc/default/grub这个文件可以影响网卡命名,方便批量管理机器
要实现不同系统网卡名一样,所以在这后面加 字符
高级编辑命令:
P:\n回车 换行 如果模式空间有几行,只打印第一行,如果是小p就全部打印
h:模式空间读出来覆盖保持空间
H:模式空间读出来追加保持空间
g:从保持空间去除内容覆盖至模式空间
G:保持模式内容追加至模式空间
x:把模式空间中的内容与保持空间中的内容进行互换
n:读取匹配行的下一行覆盖模式空间第一行
N:第一行第二行都在模式空间/ 读取匹配行的下一行追加模式空间
d:删除模式空间的行
D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会发出d命令那样启动正常的新循环
如果有好几行会删除第一行,并且不会读新的下一行
sed示例:
sed ‘2p’ /etc/passwd_____显示第二行,默认全部打印,第二行打印2遍
sed -n ‘2p’ /etc/passwd 只打印第二号
sed -n ‘1,4p’ /etc/passwd 只打印1~4行
sed -n ‘/root/p’ /etc/passwd _____打印包含root行
sed -n '2,/root/p /etc/passwd _____打印第2行到包含root的行
sed -n ‘/^KaTeX parse error: Expected group after '_' at position 6: /=' _̲____ file 空行显示行…/p’ -e ‘/^$/=’ _____空行显示行号并且把行业打印出来
sed ‘/root/a\superman’ etc/passwd行后 _____在包含root行后面追加supermanZ字符串
sed ‘/root/i\superman’ etc/passwd 行前 _____在包含root行前面加superman
sed ‘/root/c\superman’ etc/passwd 代替行 _____在包含root行替代superman
nl /etc/passwd | sed '2a tea '_____在第二行追加 tea
用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序
#!/bin/bash
read -p "please input ipcount >= " ipawk '{print $1}' /var/log/httpd/access_log20190 | sort |uniq -c |sort -n|awk '$1>=$ip {print $1,$2}'
使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包
[root@localhost scripts]# yum install -y ftp --enablerepo=Local Yum
[root@localhost scripts]# yum install -y openssh --enablerepo=Local Yum
[root@localhost scripts]# yum install -y wget --enablerepo=Local Yum
[root@localhost scripts]# yum install -y tcpdump --enablerepo=Local Yum
linux计划任务和yum相关推荐
- Linux 计划任务 访问网页
1.linux安装 [root@CentOS ~]# yum -y install vixie-cron [root@CentOS ~]# yum -y install crontabs 说明: vi ...
- linux的周期计划任务叫atd,linux计划任务
一.单一计划任务 安装at: # yum -y install at 启动: # /etc/init.d/atd start 查看是否运行: # ps aux | grep atd 创建计划 # at ...
- linux计划任务执行bin文件,Linux任务计划和周期性任务执行
linux计划任务有两类 at:未来某个时间点仅执行一次任务就结束的指令,at指令执行时必须要有atd这个服务支持. crontab:可以以时间单位为分钟,小时,每天,每周,每月,每年等循环执行某任务 ...
- 云计算实战系列十三(Linux计划任务)
Linux计划任务 知识点: · 循环调度执行 cron 用户级 · 企业应用项目实战(cron) · /etc/crontab · 日志的重要性 · rsyslog 日志管理 · logrotate ...
- Linux计划任务-定时任务
Linux计划任务-定时任务 at单次计划任务 at命令格式 查看at任务 取消at计划任务 创建1分钟后的单次任务 定时任务分类 cron`系统任务调度` /etc/crontab文件格式 用户任务 ...
- Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务
文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...
- 运维基本功(十):Linux计划任务以及进程检测与控制
本文是在课程课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二 ...
- linux计划任务at-crontab 与日志的管理使用
linux计划任务与日志的管理 引子: 大家平常都会有一些比如说:你每天固定几点起床?每天按时上班打卡.每月 15 号准时开工资.每年 2 月 14 你俩口子某某纪念日等这些诸如此类,这些都是定时发生 ...
- linux下rpm,yum学习
linux下RPM及yum学习 linux中程序管理程序主要分为两类 dpkg(Debian Packager):debian,Ubuntu,Knoppix rpm(Redhat Pa ...
最新文章
- 我看过的编译原理方面的好文章
- mysql 进阶_mysql进阶知识
- GXU - 7D - 区间求和 - 前缀和
- C++:20---成员变量初始化方式
- ie compatibility
- win8 任务栏不合并隐藏标题
- Ionic 框架宣布 2019 年将正式支持 Vue 和 React
- OpenUDID 和 IDFA 比较
- 微信小程序自定义拍照和H5调用摄像头拍照
- 万能五笔输入法弹窗_万能五笔输入法广告怎么去掉
- C语言运算优先级口诀
- 简约高级导航源码+支持PC/WAP有后台
- 本地存储-系统和保留-系统文件占用存储空间过大的解决方式
- 小米 oj 22 题 找到第 N 个数字
- 优雅地寻找网站源码(一)
- 机器人技术(5)AtdRobot无线手柄控制教程
- SpringSecurity:登录
- 牛客练习赛52 B Galahad (树状数组)
- 阿姆达尔定律 是什么 Amdahl 并行效率计算经验法则
- echo “新密码“ | passwd --stdin 用户名
热门文章
- java环境变量配置检验_配置检测JDK环境的方法整理,非常详细
- 笔记本电脑通过CLASH开代理热点给手机
- visual studio 管理员与用户区分_Cockpit 及其网页用户界面的演变 | Linux 中国
- 计算机安全德育,信息技术教学中的德育渗透
- Matlab实现《追光者》简谱
- 关于stringstream的用法总结
- 如何在ASP.NET MVC中实现提交若干个某模型的数据(某Model的List或ICollection,大小不定)
- WPF DataGrid 使用
- 标准功能模块组件 -- “文档管理组件,网络文档管理,网络存储”,B/S版本组件可独立运行,也可集成到其他项目里,数据结构清晰思路严谨
- php mysql日程管理系统_GitHub - Uyouii/WebTaskManager: web端的日程管理系统 apache + php + mysql...