- tar打包命令
tar 命令常常用于打包、压缩某些文件或目录,也可以添加新文件到归档文件中。Tar 代表的是磁带存档,是一种归档的文件格式,早期用于将文件归档到磁带备份存储。现可以用于收集、分发、归档文件,还可以保留文件原有的属性,如:用户和组权限,访问和修改日期以及目录结构
tar zcvf /backup/oldboy.tar.gz /etc/ /oldboy/ /var/log/messages
tar: 从成员名中删除开头的“/” --- 压缩数据信息,如果采用绝对路径,在压缩时会将/目录信息移出
解释:移出/ 根目录信息,主要是避免解压后数据会覆盖原有目录中数据信息 (默认设置)
查看压缩包数据信息:
tar tf /backup/oldboy.tar.gz
tar zxvf
x --- 提取压缩包中数据信息
tar zxvf oldboy.tar.gz -C /data --- 将解压后的数据保存到指定目录中 (默认解压数据到当前目录)
补充:find删除目录部分数据信息
方式一:将本身定位目录进行排除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz"
/oldboy/hosts
/oldboy/services
find /oldboy/ ! -path /oldboy/ ! -name "*.tar.gz"
/oldboy/services
/oldboy/hosts
命令(脚本文件) 参数信息 文件或目录(参数) --- 脚本
find /oldboy/ -mindepth 1 ! -name "*.tar.gz"|xargs rm -rf
xargs --- 放在管道符号后面,表示将管道符号前面命令产生的结果信息转换为参数信息,再交给xargs之后的命令进行处理
方式二: 将部分数据进行删除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz" -delete
方式三: 将部分数据进行删除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz" -exec rm -rf {} \;
压缩数据或者解压数据:为什么要移出 数据信息前面的 / 目录
第一个历程:环境准备:
创建重要配置文件信息:
cat /conf/oldboy.conf
oldboy123
第二个历程:压缩保存备份数据信息
tar zcvPf /backup/oldboy.tar.gz /conf/oldboy.conf
/conf/oldboy.conf
tar tf /backup/oldboy.tar.gz
tar: 从成员名中删除开头的“/”
/conf/oldboy.conf --- 查看数据没有移出 / 信息
第三个历程:修改编辑原有配置文件
# cat /conf/oldboy.conf
oldboy123 456 789
第四个历程:解压数据信息(不要移出根目录)
tar xPf /backup/oldboy.tar.gz
查看原有数据信息被覆盖
cat /conf/oldboy.conf
oldboy123
压缩数据排除功能:
tar zcvf /oldboy/oldboy.tar.gz /oldboy/ --exclude=/oldboy/oldboy02.txt --exclude=/oldboy/oldboy01.txt --- 排除单个数据信息
tar zcvf /oldboy/oldboy.tar.gz /oldboy/ --exclude-from=/oldboy/paichu.txt --- 排除多个数据信息
作业:
- 一个压缩包生成之后,如何向这个压缩包中追加新的压缩数据
- 如何实现批量压缩不同的数据信息
将/etc目录中以h开头的文件,进行压缩保存
find /etc/ -maxdepth 1 -type f -name "h*"|xargs tar zcvf /backup/etc.tar.gz
2)文件权限信息:
r=4 w=2 x=1 -=0 权限符号对应数值信息
rw-r---wx 411
-wxr-xr-- 367
r--rwx--x 542
结论:正常情况下,文件数据权限具有9位权限位 == 3特殊权限位
3)文件用户信息:
· 用户信息概念介绍:
用户:可以管理相应数据用户 可以管理相应进程用户
系统识别用户会按照用户编号识别 == UID
用户组:可以多人同时管理某一个数据文件 可以同时设置调整多人的权限
系统识别用户组会按照用户组编号识别 == GID
硬盘 400 == 张三买的 属主
存储服务器 40000 == 张三 李四 王五 集资买的 权力 - 组
· 系统用户分类:
系统超级管理员 root (皇帝) 0 对系统具有绝对控制能力
系统虚拟用户 nobody(傀儡) 1-999 可以管理进程/数据信息 ???
不能登陆系统/不能具有家目录
系统普通用户 oldboy(大臣) 1000+ 辅助root用户管理系统 - 必须由root用户分配特殊权利
4)文件属性时间信息
· 文件时间类型:
Access time (atime): 访问时间 -- 文件被查看打开的时间
Modify time (mtime):修改时间 -- 文件数据内容被改变的时间
Change time (ctime):改变时间 -- 文件属性信息变化的时间
刚创建一个文件后的时间信息:
stat oldboy.txt
Access: 2020-11-20 12:04:49.984479241 +0800
Modify: 2020-11-20 12:04:49.984479241 +0800
Change: 2020-11-20 12:04:49.984479241 +0800
进行文件访问查看:
[root@bj-oldboy-muban backup]# cat oldboy.txt
[root@bj-oldboy-muban backup]# stat oldboy.txt
Access: 2020-11-20 12:05:52.602486960 +0800 -- 访问时间变化
Modify: 2020-11-20 12:04:49.984479241 +0800
Change: 2020-11-20 12:04:49.984479241 +0800
修改文件内容信息:
[root@bj-oldboy-muban backup]# vi oldboy.txt
[root@bj-oldboy-muban backup]# stat oldboy.txt
Access: 2020-11-20 12:06:59.849495249 +0800 -- 编辑文件时打开访问了文件
Modify: 2020-11-20 12:06:59.849495249 +0800 -- 信息改变之后的时间
Change: 2020-11-20 12:06:59.853495250 +0800 -- 文件大小属性变化
修改文件属性信息:
[root@bj-oldboy-muban backup]# stat oldboy.txt
Access: 2020-11-20 12:06:59.849495249 +0800
Modify: 2020-11-20 12:06:59.849495249 +0800
Change: 2020-11-20 12:10:46.299523165 +0800 -- 修改属性时间会发生变化
和时间有关命令:date
· 查看时间信息
按照需求查看显示时间
date "+%Y-%m-%d %A %H:%M:%S"
2020-11-20 Friday 12:19:06
[root@bj-oldboy-muban backup]# date "+%F"
2020-11-20
[root@bj-oldboy-muban backup]# date "+%T"
12:21:06
查看过去或未来的时间:
date -d "-1 day" --- 显示过去的多少天前时间
date -d "+19345 day" --- 显示未来的多少天后时间
11月01日 00:00 备份数据 前一天(10月31日) 备份-生成 hosts-11月01日
cp /etc/hosts /backup/hosts-$(date +%F -d "-1 day") hosts-10月31日
11月02日 00:00 备份数据 前一天(11月01日) 备份-生成 hosts-11月02日
cp /etc/hosts /backup/hosts-$(date +%F -d "-1 day") hosts-11月01日
· 可以修改时间:
date -s "2020-12-12 12:12:12" --- 完整调整时间信息
作业讲解:
find命令扩展:
- 如何按照分钟查找数据信息
-mmin
[root@bj-oldboy-muban oldboy]# find /oldboy -mmin -2
/oldboy
/oldboy/oldboy02.txt
[root@bj-oldboy-muban oldboy]# find /oldboy -mmin +2
/oldboy/oldboy01.txt 如何查找多个条件的数据 条件一 类型文件 条件二 大小是大于10M 条件三 10天前数据
/oldboy/01 开始 --- /oldboy/01/02/03/04/ 结束设置多个条件,是并且的关系
find /oldboy -type d -a -name "oldboy*"
设置多个条件,是或者的关系
[root@bj-oldboy-muban oldboy]# find /oldboy -name ".jpg" -o -name ".sh"
/oldboy/oldboy01/oldboy.jpg
/oldboy/oldboy01/oldboy.sh
/oldboy/oldboy02/oldgirl.jpg
/oldboy/oldboy02/oldgirl.sh
/oldboy/oldboy03/oldbaby.jpg
/oldboy/oldboy03/oldbaby.shfind /oldboy -mindepth 2 -type f --- 可以不用再看到01.txt文件
find /oldboy -maxdepth 5 -type f --- 可以不用再看到06.txt文件find /oldboy -mindepth 2 -maxdepth 5 -type f
- 如何排除指定目录不做查找
/oldboy/01/oldboy.txt /oldboy/02/oldboy.txt 根据名称查找 oldboy.txt 但是不要去/oldboy/02/目录查找 /oldboy/03/oldboy.txt 排除方法一: # find /oldboy ! -path "/oldboy/02/*" -type f /oldboy/01/oldboy.txt /oldboy/03/oldboy.txt 排除方法二: # find /oldboy -path "/oldboy/02" -prune -o -type f /oldboy/01/oldboy.txt /oldboy/03/oldboy.txt /oldboy/02/