linux基础3

  1. 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 --- 排除多个数据信息

作业:

  1. 一个压缩包生成之后,如何向这个压缩包中追加新的压缩数据
  1. 如何实现批量压缩不同的数据信息
    将/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命令扩展:

  1. 如何按照分钟查找数据信息
    -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
  2. 如何查找多个条件的数据 条件一 类型文件 条件二 大小是大于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.sh

    find /oldboy -mindepth 2 -type f --- 可以不用再看到01.txt文件
    find /oldboy -maxdepth 5 -type f --- 可以不用再看到06.txt文件

    find /oldboy -mindepth 2 -maxdepth 5 -type f

    1. 如何排除指定目录不做查找
    /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/

你可能感兴趣的:(linux命令行运维)