Day10-Linux系统打包和时间命令及案例精讲

Day10-Linux系统打包和时间命令及案例精讲

  • 1. tar 打包压缩
    • 1.1 【打包】 为什么要打包,压缩?
    • 1.2 【查看包里内容】
    • 1.3 【解包】
    • 1.4 排除打包 --exclude=
  • 2. date 时间命令

1. tar 打包压缩

1.1 【打包】 为什么要打包,压缩?

-zcvf 打包组合 zcf
z 压缩(gzip压缩)
c 创建
v 显示过程
f 针对文件

语法:

命令 选项

tar zcf 【压缩包的名字.tar.gz】 【要打包的东西】

装东西的筐 苹果

练习1:把/etc/目录打包到/opt下面。

ls -d /etc #检查有没有要打包的目录
cd /       #切换到打包目录的上一级
tar zcf /opt/etc.tar.gz ./etc

执行过程:

[root@oldboy ~]# cd /
[root@oldboy /]# tar zcvf /opt/etc.tar.gz ./etc/
[root@oldboy /]# ls /opt/
etc  etc.tar.gz  services

练习2:把/usr/local目录打包到/tmp下面。

[root@oldboy /]# ls -ld /usr/local/
drwxr-xr-x. 12 root root 131 Dec  1  2023 /usr/local/
[root@oldboy /]# cd /usr/
[root@oldboy usr]# tar zcf /tmp/local.tar.gz ./local/
[root@oldboy usr]# ls /tmp/
local.tar.gz  services

v 显示过程 工作中和领导汇报工作。

关键:

  1. 结果:赚100万。

  2. 过程:怎么赚的100万?

1.2 【查看包里内容】

t 查看包里内容

tar tf 包名

[root@oldboy usr]# tar tf /tmp/local.tar.gz
./local/
./local/bin/
./local/etc/
./local/games/
./local/include/
./local/lib/
./local/lib64/
./local/libexec/
./local/sbin/
./local/share/
./local/share/applications/
./local/share/info/
./local/share/man/
./local/share/man/man1/
......

1.3 【解包】

组合zxvf,缩写xf

x 解压

[root@oldboy opt]# cd /opt
[root@oldboy opt]# tar zxvf etc.tar.gz  #解压到了当前目录
[root@oldboy opt]# tar zxf etc.tar.gz
[root@oldboy opt]# tar xf etc.tar.gz

-C 指定路径解压

[root@oldboy opt]# tar xf etc.tar.gz -C /home/oldboy/
[root@oldboy opt]# ls /home/oldboy/

-p 保持属性(zcfp)

-j 通过bzip2命令压缩或解压(非常少了)

tar jcvf 包名.tar.bz2 包名

[root@oldboy opt]# tar jcvf /tmp/a.tar.bz2 /etc/hosts #打包实践
tar: 从成员名中删除开头的“/”
/etc/hosts
[root@oldboy opt]# ls /tmp/
a.hosts  a.tar.bz2  etc  local.tar.gz  services
[root@oldboy opt]# cd /tmp/
[root@oldboy tmp]# tar zxvf a.tar.bz2 gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now两种解压方法:
[root@oldboy tmp]# tar jxvf a.tar.bz2 
etc/hosts
[root@oldboy tmp]# tar xf a.tar.bz2 #gzip,bzip统一解压方法。

1.4 排除打包 --exclude=

tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file1

命令 参数 包名 目录 排除的文件

环境准备

[root@oldboy tmp]# mkdir /oldboy -p
[root@oldboy tmp]# cd /oldboy/
[root@oldboy oldboy]# ls
[root@oldboy tmp]# mkdir /oldboy -p
[root@oldboy tmp]# cd /oldboy/
[root@oldboy oldboy]# ls
[root@oldboy oldboy]# touch file{1..5}
[root@oldboy oldboy]# ls
file1  file2  file3  file4  file5
[root@oldboy oldboy]# cd ../

练习排除打包

排除file1

[root@oldboy /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file1
./oldboy/
./oldboy/file2
./oldboy/file3
./oldboy/file4
./oldboy/file5

排除file1到file3 ###–exclude=file{1…3}

[root@oldboy /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file{1..3}
./oldboy/
./oldboy/file4
./oldboy/file5

指定要排除的文件 ### --exclude=file{1,3,5}

[root@oldboy /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file{1,3,5}
./oldboy/
./oldboy/file2
./oldboy/file4###--exclude=file1 --exclude=file2
[root@oldboy /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file1 --exclude=file2
./oldboy/
./oldboy/file3
./oldboy/file4
./oldboy/file5

从文件中排除打包 --exclude-from(-X)

建立排除的文件paichu.log,内容就是排除的文件名

cat >paichu.log<<EOF
file1
file5
EOF[root@oldboy /]# cat paichu.log 
file1
file5
[root@oldboy /]# tar zcvfX /tmp/pai.tar.gz paichu.log ./oldboy/
./oldboy/
./oldboy/file2
./oldboy/file3
./oldboy/file4

tar zcvfX /tmp/pai.tar.gz paichu.log ./oldboy/

​ 存储排除文件名的文件

-h 打包软链接

/etc/rc.local是软链接文件,指向真实路径/etc/rc.d/rc.local
默认打包的时候,只打包了软链接文件。

tar zcvf /backup/rc.local_1.tar.gz /etc/rc.local

【而加上-h打包,可以打包软链接对应的真实文件】

[root@oldboy etc]# tar zcvfh  /backup/rc.local_1.tar.gz /etc/rc.local
tar: 从成员名中删除开头的“/”
/etc/rc.local
[root@oldboy etc]# cd /backup/
[root@oldboy backup]# tar xf rc.local_1.tar.gz 
[root@oldboy backup]# cat etc/rc.local 
#!/bin/bash
touch /var/lock/subsys/local

2. date 时间命令

日期 时间命令 date,别和data搞混这是数据。

date -s "2030/5/14"                #修改日期
date -s "2030/5/14 23:45:12"       #修改时间
clock -w                           #写到bios永久生效。

学习一下。。。

工作中服务器的时间是定时和互联网时间同步的。

自己配置定时同步(设置搭建时间服务器) NTPD服务和chronyd

CentOS6中,默认使用ntpd时间服务

CentOS7中,默认使用chrony时间服务

练习:

[root@oldboy backup]# date -s "2030/5/14"
2030年 05月 14日 星期二 00:00:00 CST
[root@oldboy backup]# date
2030年 05月 14日 星期二 00:00:07 CST
[root@oldboy backup]# date -s "2030/5/14 23:45:12"
2030年 05月 14日 星期二 23:45:12 CST
[root@oldboy backup]# clock -w

当下时间,特定格式时间显示

[root@oldboy ~]# date +%F
2030-05-15
[root@oldboy ~]# date +%Y
2030
[root@oldboy ~]# date +%m
05
[root@oldboy ~]# date +%d
15
[root@oldboy ~]# date +%Y-%m-%d
2030-05-15
[root@oldboy ~]# date +%H
00
[root@oldboy ~]# date +%M
07
[root@oldboy ~]# date +%S
31
[root@oldboy ~]# date +%H:%M:%S
00:07:51
[root@oldboy ~]# date +%Y-%m-%d\ %H:%M:%S
2030-05-15 00:08:16
[root@oldboy ~]# date +%Y-%m-%d %H:%M:%S  #空格要转义,否则报错。
date: 额外的操作数 "%H:%M:%S"
Try 'date --help' for more information.
[root@oldboy ~]# date +%F\ %T
2030-05-15 00:09:08
[root@oldboy opt]# date +%w
3

-d 显示时间

过去的时间(- 表示过去)

[root@oldboy opt]# date +%F -d "-3day"
2030-05-12
[root@oldboy opt]# date +%F -d "-3month"
2030-02-15
[root@oldboy opt]# date +%F -d "-3year"
2027-05-15
[root@oldboy opt]# date +%F -d "-24hour"
2030-05-14
[root@oldboy opt]# date +%F -d "-1440min"
2030-05-14
[root@oldboy opt]# date +%F -d "-86400sec"
2030-05-14

未来的时间(+ 表示未来)

[root@oldboy opt]# date +%F -d "+3day"
2030-05-18

企业级打包案例

案例1:每天打包/etc/目录,到/backup目录,要求压缩包的名字按照每天的日期命名。

1)知识点:

$( )和` `反引号,里面都是放命令,可以作为路径,文件名的一部分

2)测试

[root@oldboy ~]# echo $(date +%F)
2030-05-15
[root@oldboy ~]# echo `date +%F`
2030-05-15

3)练习

[root@oldboy ~]# tar zcf /tmp/etc_$(date +%F).tar.gz /etc/
tar: Removing leading `/' from member names
[root@oldboy ~]# ls /tmp/
etc_2030-05-15.tar.gz  local.tar.gz  services  #压缩包的名字还有当天的日期

4)解答·

[root@oldboy ~]# mkdir /backup -p    #创建存储备份数据的目录
[root@oldboy ~]# ls -ld /backup/     #检查待备份的目录/etc
drwxr-xr-x. 2 root root 6 May 15 00:40 /backup/
[root@oldboy ~]# tar zcf /backup/bak_etc_$(date +%F).tar.gz /etc/    #打包备份
tar: Removing leading `/' from member names
[root@oldboy ~]# ls /backup/
bak_etc_2030-05-15.tar.gz

案例2:查找/etc下,扩展名是.conf的所有文件,打包备份到/backup,文件名含有日期

find+tar组合

1)查找/etc下扩展名是.conf的所有文件

[root@oldboy ~]# find /etc/ -name "*.conf"

2)解答:

方法一:

[root@oldboy ~]# tar zcf /backup/conf_bak_$(date +%F) $(find /etc/ -name "*.conf")
tar: Removing leading `/' from member names
[root@oldboy ~]# ls /backup/
bak_etc_2030-05-15.tar.gz  conf_bak_2030-05-15
[root@oldboy ~]# tar zcf /backup/conf_bak_$(date +%F).tar.gz $(find /etc/ -name "*.conf")
tar: Removing leading `/' from member names
[root@oldboy ~]# ls /backup/
bak_etc_2030-05-15.tar.gz  conf_bak_2030-05-15  conf_bak_2030-05-15.tar.gz
[root@oldboy ~]#

方法二:

[root@oldboy ~]# find /etc/ -name "*.conf"|xargs tar zcf /backup/conf_bak_$(date +%F)
tar: Removing leading `/' from member names
[root@oldboy ~]# ls /backup/
bak_etc_2030-05-15.tar.gz  conf_bak_2030-05-15  conf_bak_2030-05-15.tar.gz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一周学会Django5 Python Web开发-Django5路由变量

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计22条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

SPSSAU【文本分析】|文本聚类

SPSSAU共提供两种文本聚类方式&#xff0c;分别是按词聚类和按行聚类。按词聚类是指将需要分析的关键词进行聚类分析&#xff0c;并且进行可视化展示&#xff0c;即针对关键词进行聚类&#xff0c;此处关键词可以自由选择。按行聚类分析是指针对以‘行’为单位进行聚类分析&…

YOLOv8推理程序

YOLOv8单独推理,有时候我们自定义的模块算子无法正常转换为其他框架,而且需要做成应用,因此需要一个单独推理的程序,返回的是识别后的照片还有各个类别及其对应数量。文章最后给出Flask封装为Server以及调用的实例还有Client请求代码,支持几十路多线程并发,只需加载一次模…

闲鱼搜索API接口

闲鱼搜索API接口接口api代码对接如下&#xff1a; 1.公共参数 名称 类型 必须 描述 key String √ get请求方式拼接在url中&#xff0c;点击获取 api_name String √ api接口名称 cache String 默认否 result_type String 否 json lang String 默认cn 简…

linux部署jenkins,支持jdk1.8

无废话&#xff0c;纯干活安装指令 本文前提条件需安装jdk8&#xff0c;安装参考&#xff1a;Linux配置jdk环境 下载资源 # 创建安装目录 mkdir -p /data/jenkins && cd /data/jenkins# 下载jenkins的war包&#xff0c;v2.346.x支持jdk1.8&#xff0c;高于这个版本的…

【数据结构】图的最小生成树

最小生成树 一个图中有N个顶点&#xff0c;边的数量一定是>N-1&#xff0c;我们从中选取N-1条边&#xff0c;用来连接N个点&#xff0c;所形成的边权之和最小&#xff0c;就是最小生成树。 构成最小生成树的准则 只能使用图中的边来构造最小生成树只能使用恰好n-1条边来连…

Stable Diffusion 绘画入门教程(webui)-提示词

通过上一篇文章大家应该已经掌握了sd的使用流程&#xff0c;本篇文章重点讲一下提示词应该如何写 AI绘画本身就是通过我们写一些提示词&#xff0c;然后生成对应的画面&#xff0c;所以提示词的重要性不言而喻。 要想生成更加符合自己脑海里画面的图片&#xff0c;就尽量按照…

术业有专攻!三防加固平板助力工业起飞

在日常使用中的商业电脑比较追求时效性&#xff0c;以市场定位做标准&#xff0c;内部元件只需满足一般要求就行&#xff0c;使用寿命比较短。而三防平板电脑是主要运用在复杂、恶劣的环境下所以在需求方面较高,需要保证产品在恶劣条件下正常使用&#xff0c;满足行业领域的需求…

【CCEdit】通过扩散模型进行创意且可控的视频编辑

文章目录 CCEdit1. 核心特性1.1 三叉戟网络结构1.2 精细的外观控制1.3 高度的自适应性 2. 三叉戟结构2.1 结构分支&#xff08;ControlNet架构&#xff09;2.2 外观分支2.3 主分支 3. 数据集——BalanceCC benchmark dataset4. 训练5. 长视频编辑6. 使用场景7. 评估指标 CCEdit…

单片机01天---stm32基本信息了解

下载数据手册 以STM32F407ZG为例 网站&#xff1a;www.st.com&#xff0c;搜索芯片型号&#xff0c;下载“数据手册”使用 数据手册使用 查看芯片型号信息 芯片资源信息 时钟框图 芯片资源表格下方 GPIO口表格 一般位于下图后面的位置 ①工作电压&#xff1a;1.8V – 3.6V…

Codeforces Round 928 (Div. 4) (A-E)

比赛地址 : https://codeforces.com/contest/1926 A 遍历每一个字符串&#xff0c;比较1和0的数量即可&#xff0c;那个大输出那个; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&am…

C++BST(二叉搜索树)应用场景

CBST可以应用于各种场景&#xff1a; 数据的快速查找&#xff1a;由于BST的特性&#xff0c;可以很方便地进行查找操作。在BST中&#xff0c;查找一个特定元素的时间复杂度为O(log n)&#xff0c;其中n是BST中节点的数量。数据的排序&#xff1a;BST可以通过中序遍历得到有序的…

Idea启动Gradle报错: Please, re-import the Gradle project and try again

Idea启动Gradle报错&#xff1a;Warning:Unable to make the module: reading, related gradle configuration was not found. Please, re-import the Gradle project and try again. 解决办法&#xff1a; 开启步骤&#xff1a;View -> Tool Windows -> Gradle 点击refe…

HN 千赞热贴|创业 4 年,那些狠狠打我脸的技术选型

Hacker News 帖子 过年这段时间&#xff0c;Hacker News 上也涌现了不少好帖子&#xff0c;除了霸榜的 Sora 外&#xff0c;技术贴最靠前的就是这篇 (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup。作者根据…

C#面:列出 .NET 中的几种循环方法,并指出它们的不同

fo r循环&#xff1a; for 循环是一种最常见的循环方法&#xff0c;它通过指定循环的起始值、终止条件和每次迭代的步长来控制循环。 for 循环适用于已知循环次数的情况。 while循环&#xff1a; while循环是一种在循环开始之前先判断条件是否满足的循环方法。只有当条件为…

【Django开发】0到1开发美多shop项目:图形和短信验证码。全md文档笔记(附代码,已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

【Java多线程】线程安全问题与解决方案

目录 1、线程安全问题 1.2、线程安全原因 2、线程加锁 2.1、synchronized 关键字 2.2、完善代码 2.3、对同一个线程的加锁操作 3、内容补充 3.1、内存可见性问题 3.2、指令重排序问题 3.3、解决方法 3.4、总结 volatile 关键字 1、线程安全问题 某个代码&#xff…

初识结构体(C语言)

目录 1、结构体声明 2、结构体访问 3、结构体传参 1、结构体声明 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每一个成员可以是不同类型的变量。有点像数组&#xff0c;但是一个数组只能存放同一种类型的变量。如果要描述复杂对象的时候&#xff0c;对象由多…

基于Java SSM框架实现留学生交流互动论坛网站项目【项目源码+论文说明】

摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

【leetcode】常用数学题解法介绍

当涉及到ACM算法题中常见的数学常识和知识点时&#xff0c;以下是更加详细和全面的分析&#xff1a; 二进制&#xff1a; 二进制在计算机中是最基础的进制&#xff0c;它只包含两个数字0和1。在ACM算法题中&#xff0c;常用的二进制操作有&#xff1a; 位运算&#xff1a;包括…