Bootstrap

2024年7月15日(find命令,根据文件的名称文件,根据文件大小搜索文件,tree命令,scp上传和下载,计划任务和tar结合实现备份)

Linux系统管理

一、find命令

find [文件路径] [选项 选项的值]

-name  * 根据文件的名称搜索文件,支持通配符

-type f|d f代表普通文件,d代表目录

[root@zhangsan ~]# find /opt/ -name "*a*"

[root@zhangsan ~]# find /opt/ -name "*a*" -type f

[root@zhangsan ~]# find /opt/ -name "*a*" -type d

案例:

[root@zhangsan ~]# touch /opt/zhangminlaoshi.abc

[root@zhangsan ~]# find / -name "zhangmin"

[root@zhangsan ~]# find / -name "*zhangmin*"   #加通配符

/opt/zhangminlaoshi.abc

[root@zhangsan ~]# find /opt/ -name "*zhangmin*" -type f

/opt/zhangminlaoshi.abc

二、创建并设置文件最后修改的时间

使用stat命令获取文件的时间信息

语法:stat 文件

1、创建时间

2、修改时间

3、访问时间

案例

[root@zhangsan ~]# stat /opt/zhangminlaoshi.abc

  文件:"/opt/zhangminlaoshi.abc"

  大小:0                 块:0          IO 块:4096   普通空文件

设备:fd00h/64768d        Inode:38032331    硬链接:1

权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

最近访问:2024-07-15 09:09:01.144895699 +0800

最近更改:2024-07-15 09:09:01.144895699 +0800

最近改动:2024-07-15 09:09:01.144895699 +0800

创建时间:-

三、创建文件,并配置文件的修改时间

语法:touch 文件名称 -m -d “日期时间格式”

文件不存在就创建并修改时间

文件存在只配置最后修改时间

[root@zhangsan ~]# touch /opt/b.txt -m -d "2024-7-14 00:00"

[root@zhangsan ~]# touch /opt/c.txt -m -d "2024-7-13 00:00"

[root@zhangsan ~]# touch /opt/d.txt -m -d "2024-7-12 00:00"

[root@zhangsan ~]# ls -l /opt/

-rw-r--r--  1 root root   0 7月  15 09:32 a.txt

-rw-r--r--  1 root root   0 7月  14 00:00 b.txt

-rw-r--r--  1 root root   0 7月  13 00:00 c.txt

-rw-r--r--  1 root root   0 7月  12 00:00 d.txt

[root@zhangsan ~]# touch /opt/f.txt

[root@zhangsan ~]# ls -l /opt/

-rw-r--r--  1 root root   0 7月  15 09:38 f.txt

[root@zhangsan ~]# touch /opt/f.txt -m -d "2024-7-10 00:00"  #可以修改

[root@zhangsan ~]# ls -l /opt/

-rw-r--r--  1 root root   0 7月  10 00:00 f.txt

四、通过文件的最后修改时间搜索文件

语法:find 文件路径 -mtime +days/-days

-mtime 根据最后修改时间进行搜索

 +号 搜索⼏天之前的⽂件信息

  -号 搜索⼏天之内的⽂件信息

[root@zhangsan ~]# find /opt/ -mtime +3  #三天前

[root@zhangsan ~]# find /opt/ -mtime -3   #三天内

删除文件

[root@zhangsan ~]# find /opt/ -mtime +3 | xargs rm -rf    #删除三天前创建的文件

[root@zhangsan ~]# touch /opt/e.txt -m -d "2024-7-11 00:00"

[root@zhangsan ~]# touch /opt/f.txt -m -d "2024-7-10 00:00"

[root@zhangsan ~]# find /opt/ -mtime +3 -exec rm -rf {} \;

[root@zhangsan ~]# ls -l /opt/

[root@zhangsan ~]# ls -l /opt/ > a.txt  #覆盖

[root@zhangsan ~]# ls -l ./ > a.txt

[root@zhangsan ~]# ls -l /opt/ >> a.txt  #追加

五、用于快速生成指定大小的文件

根据文件size大小搜索文件

find 路径 -size ⽂件大小 [常⽤单位 k M G]

[root@zhangsan ~]# find / -size +100M    #搜素文件大于100M的

[root@zhangsan ~]# find / -size -100M     #搜索文件小于100M的

清空opt目录下所有文件

[root@zhangsan ~]# rm -rf /opt/*

[root@zhangsan ~]# ls /opt/

扩展命令 dd

使⽤dd创建扩展命令 生成指定大小的测试⽂件

语法 dd if=/dev/zero of=⽂件名称 bs=1M count=1

if表示输入文件

of表示输出文件

bs代表字节为单位的块大小

count代表被复制的块

其中/dev/zore是⼀个字符设备,会不断地返回0字节的⽂件

案例:

[root@zhangsan ~]# dd if=/dev/zero of=/opt/a.txt bs=1M count=1

[root@zhangsan ~]# dd if=/dev/zero of=/opt/b.txt bs=5M count=1

[root@zhangsan ~]# dd if=/dev/zero of=/opt/c.txt bs=10M count=1

[root@zhangsan ~]# ls -lh /opt/

总用量 16M

-rw-r--r-- 1 root root 1.0M 7月  15 10:27 a.txt

-rw-r--r-- 1 root root 5.0M 7月  15 10:29 b.txt

-rw-r--r-- 1 root root  10M 7月  15 10:29 c.txt

[root@zhangsan ~]# find /opt/ -size 5M   #查询等于5M的文件

/opt/b.txt

[root@zhangsan ~]# find /opt/ -size +5M   #查询大于5M的文件

/opt/c.txt

[root@zhangsan ~]# find /opt/ -size -5M  #查询小于5M的文件也能找到隐藏文件

/opt/

/opt/a.txt

六、tree命令创建⽂件列表,将⽂件名称以树的形式展示

[root@zhangsan ~]# yum -y install tree

以树状结构显示/opt/目录中的文件

[root@zhangsan ~]# tree /opt/
/opt/
├── a.txt
├── b.txt
└── c.txt

0 directories, 3 files

七、scp实现Linux系统之间的文件传输

scp下载文件和目录  把数据从远程主机保存到本地主机

语法:scp [选项] ⽤户名@linux主机地址:/资源路径 linux本地⽂件路径   复制文件

[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# ls /opt/
[root@localhost ~]# scp [email protected]:/opt/a.txt /opt/

[root@localhost ~]# scp [email protected]:/opt/d0 /opt/
[email protected]'s password: 
scp: /opt/d0: not a regular file
[root@localhost ~]# scp -r [email protected]:/opt/d0 /opt/     #-r 代表递归,主要作⽤⽂件夹
[email protected]'s password: 
a.txt                          100% 1024KB  91.7MB/s   00:00    
b.txt                          100% 5120KB  56.9MB/s   00:00    
c.txt                          100%   10MB 119.1MB/s   00:00    
[root@localhost ~]# chmod +x /opt/d0/ -R
[root@localhost ~]# ls /opt/
a.txt  d0
[root@localhost ~]# ls /opt/d0/
a.txt  b.txt  c.txt
[root@localhost ~]# ls /opt/ -R
/opt/:
a.txt  d0

/opt/d0:
a.txt  b.txt  c.txt

scp上传文件  把本地文件保存到远程主机

语法:scp [选项] 本地主机资源路径 {远程主机}⽤户名@主机ip:放置

[root@localhost ~]# scp /opt/d0/a.txt [email protected]:/opt/   #将本地的/opt/d0/a.txt 保存到192.168.8.136主机的/opt/下

八、计划任务

crontab [选项]

-l list查看当前⽤户的计划任务信息

-e edit编写计划任务

查看是否存在计划任务

编写计划任务:crontab 分时日月周 要使用的完整路径 which命令

[root@a ~]# crontab -l
每分钟自动将opt目录中的文件名写到root目录下的list中

 [root@a ~]# crontab -e  #编辑计划任务  每1分钟执行一次

[root@a ~]# crontab -l   #查看计划任务
*/1 * * * * /usr/bin/ls /opt/ >> /root/list
[root@a ~]# vim list
[root@a ~]# dd if=/dev/zero of=/opt/hhhhh.txt bs=100M count=1
[root@a ~]# vim list

[root@a ~]# crontab -e  每小时的49分会自动写入

计划任务和tar结合实现备份

[root@a ~]# tar -zcvf /tmp/etc.tar.gz /etc/   将etc目录中的文件打包到tmp中

[root@a ~]# which tar

/usr/bin/tar

[root@a ~]# crontab -e  #编写计划任务

[root@a ~]# rm -rf /tmp/etc.tar.gz  #删除/tmp/etc.tar.gz

[root@a ~]# ls /tmp/   #会自动生成

研究时间戳

[root@a ~]# crontab -e    #在脚本中出现%,必须使用转义符\

[root@a ~]# ls /tmp/

九、时间

输出时间

[root@a ~]# date "+%T"
15:37:43

输出日期和时间
[root@a ~]# date "+%F%T"
2024-07-1515:37:56

在日期和时间中间添加间隔
[root@a ~]# date "+%F-%T"
2024-07-15-15:38:09
[root@a ~]# date "+%F %T"
2024-07-15 15:38:22

输出年
[root@a ~]# date "+%Y"
2024

输出年月日
[root@a ~]# date "+%Y%m%d"
20240715

输出年月日时分秒
[root@a ~]# date "+%Y%m%d%H%M%S"
20240715153939

;