7.15学习日记

一:find命令

1.find命令主要进⾏⽂件搜索
2.基本语法
find [⽂件路径] [选项 选项的值]
-name *
-type f|d
常⻅的选项
-name 根据⽂件的名称搜索⽂件,⽀持通配符*
-type f代表普通⽂件,d代表⽬录
案例,找到httpd.conf⽂件

[root@localhost ~]# find / -name "httpd.conf" -type f
# ⽆法找到,发现是没有安装httpd服务
[root@localhost ~]# yum install -y httpd
# 安装htppd服务
[root@localhost ~]# find / -name "httpd.conf" -type f
# 下⾯就是查找出的⽂件
/etc/httpd/conf/httpd.conf
/usr/lib/tmpfiles.d/httpd.conf
# 将/范围换成/etc/⽬录范围,这样查找更快,更加节省计算⾃资源
[root@localhost ~]# find /etc/ -name "httpd.conf" -type f
/etc/httpd/conf/httpd.conf

3.*通配符
在linux 系统中,如果要查找的⽂件的名称不清晰,可以使⽤部分⽂件名+*搜索
案例 获取/etc/中以.conf结尾的⽂件
[root@localhost ~]# find /etc/ -name "*.conf" -type f
/etc/resolv.conf
/etc/libaudit.conf
 

4.案例 搜索以http开头的⽂件
[root@localhost ~]# find /etc/ -name "http*" -type f
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/etc/httpd/conf/httpd.conf

二:⽂件的时间的概念
window中的时间
1.创建时间
2.修改时间
3.访问时间
使⽤stat命令获取⽂件的时间信息
语法 stat ⽂件

案例创建⽂件,并p配置⽂件的修改时间
语法 touch -m -d ⽇期时间格式 ⽂件名称
⽂件不存在就创建并修改时间
⽂件存在只配置最后修改时间

 

三:通过⽂件的最后修改时间搜索⽂件
语法
find ⽂件路径 -mtime +days/-days
-mtime 根据⽂件最后修改时间搜索⽂件
+号 搜索⼏天之前的⽂件信息
-号 搜索⼏天之内的⽂件信息
案例 搜索3天以前的信息,不包含第三个的,⽽且只搜txt⽂件

 

⽅法4 使⽤find执⾏ -exec
语法 find ⽂件路径
#查看⽬录中的txt⽂件
[root@localhost opt]# ls -l *.txt
#没有e.txt⽂件,在前⾯被删除了
-rw-r--r--. 1 root root 0 7⽉  14 13:54 a.txt
-rw-r--r--. 1 root root 0 7⽉  13 00:00 b.txt
-rw-r--r--. 1 root root 0 7⽉  12 00:00 c.txt
-rw-r--r--. 1 root root 0 7⽉  11 00:00 d.txt
# 创建⽂件并且指定⽂件修改⽇期
[root@localhost opt]# touch -m -d "2024-7-10 00:00" e.txt
[root@localhost opt]# ls -l
总⽤量 0
-rw-r--r--. 1 root root 0 7⽉  14 13:54 a.txt
-rw-r--r--. 1 root root 0 7⽉  13 00:00 b.txt
-rw-r--r--. 1 root root 0 7⽉  12 00:00 c.txt
-rw-r--r--. 1 root root 0 7⽉  11 00:00 d.txt
-rw-r--r--. 1 root root 0 7⽉  10 00:00 e.txt
# 查找三天以前的⽂件
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3
/opt/e.txt
# 使⽤-exec ⽂件调⽤rm函数 {}表示前⾯find查到的内容 \;表示标识符
# 这⾥在{}后⾯没有打空格报错了,在{}后应该打空格
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3 -exec rm -
rf {}\;
find: 遗漏“-exec”的参数
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3 -exec rm -
rf {} \;
总⽤量 0
-rw-r--r--. 1 root root 0 7⽉  14 13:54 a.txt
-rw-r--r--. 1 root root 0 7⽉  13 00:00 b.txt
-rw-r--r--. 1 root root 0 7⽉  12 00:00 c.txt
-rw-r--r--. 1 root root 0 7⽉  11 00:00 d.txt

四:根据⽂件size⼤⼩搜索⽂件
find 路径 -size ⽂件⼤⼩ [常⽤单位 k M G]
size值 搜索等于size的⽂件
-size值 【0,size值)
+size值 (size值,正⽆穷)
扩展命令 dd
使⽤dd创建扩展命令
⽣成指定⼤⼩的测试⽂件
语法
dd if=/dev/zero of=⽂件名称 bs=1M count=1
if表示输⼊⽂件
of表示输出⽂件
bs代表字节为单位的块⼤⼩
count代表被复制的块
其中/dev/zore是⼀个字符设备,会不断地返回0字节的⽂件
案例创建⼀个1m的⽂件
#查看⽂件
[root@localhost opt]# ls
a.txt  b.txt  c.txt  d.txt
# 删除⽂件
[root@localhost opt]# rm -rf *
# 创建名称为a.txt,⼤⼩为1m的⽂件
[root@localhost opt]# dd if=/dev/zero of=a.txt bs=1M count=1
记录了1+0 的读⼊
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.0027841 秒,377 MB/秒
# 查看⽂件信息,使⽤单位字节
[root@localhost opt]# ls -l
总⽤量 1024
-rw-r--r--. 1 root root 1048576 7⽉  14 14:37 a.txt
# 查看⽂件信息,使⽤⽂件⼤⼩单位 默认m
[root@localhost opt]# ls -lh
总⽤量 1.0M
-rw-r--r--. 1 root root 1.0M 7⽉  14 14:37 a.txt
⽣成其他⼤⼩的⽂件
[root@localhost opt]# dd if=/dev/zero of=b.txt bs=5M count=1
记录了1+0 的读⼊
记录了1+0 的写出
5242880字节(5.2 MB)已复制,0.0111468 秒,470 MB/秒
[root@localhost opt]# dd if=/dev/zero of=c.txt bs=10M count=1
记录了1+0 的读⼊
记录了1+0 的写出
10485760字节(10 MB)已复制,0.0476839 秒,220 MB/秒
[root@localhost opt]# ls -l
总⽤量 16384
-rw-r--r--. 1 root root  1048576 7⽉  14 14:37 a.txt
-rw-r--r--. 1 root root  5242880 7⽉  14 14:42 b.txt
-rw-r--r--. 1 root root 10485760 7⽉  14 14:42 c.txt
[root@localhost opt]# ls -lh
总⽤量 16M
-rw-r--r--. 1 root root 1.0M 7⽉  14 14:37 a.txt
-rw-r--r--. 1 root root 5.0M 7⽉  14 14:42 b.txt
-rw-r--r--. 1 root root  10M 7⽉  14 14:42 c.txt

基本语法
find ⽂件路径 -size size值(单位 k M G)
size值 搜索等于size⼤⼩的⽂件
-size值 [0,size值)
+size值 (size值,⽆穷⼤)
# 普通单位查看⽂件信息
[root@localhost opt]# ls -lh
总⽤量 16M
-rw-r--r--. 1 root root 1.0M 7⽉  14 14:37 a.txt
-rw-r--r--. 1 root root 5.0M 7⽉  14 14:42 b.txt
-rw-r--r--. 1 root root  10M 7⽉  14 14:42 c.txt
# 搜索⽂件⼤⼩为5M的⽂件
[root@localhost opt]# find ./ -size 5M
./b.txt
# 搜索⽂件⼤⼩⼩于10M的⽂件
[root@localhost opt]# find ./ -size 10M
./c.txt
#搜索⼩于1m的⽂件,隐藏⽂件也找出来了
[root@localhost opt]# find ./ -size 1M
./
./a.txt
# 搜索⽂件⼤⼩⼤于1m的⽂件
[root@localhost opt]# find ./ -size +1M
./b.txt
./c.txt
[root@localhost opt]# find ./ -size -1M
案例 搜索系统⼤于100M的⽂件
[root@localhost opt]# find / -size +100M
/proc/kcore
find: ‘/proc/9352/task/9352/fd/6’: 没有那个⽂件或⽬录
find: ‘/proc/9352/task/9352/fdinfo/6’: 没有那个⽂件或⽬录
find: ‘/proc/9352/fd/5’: 没有那个⽂件或⽬录
find: ‘/proc/9352/fdinfo/5’: 没有那个⽂件或⽬录
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/root/mysql-8.4.1-1.el7.aarch64.rpm-bundle.tar
/root/mysql-community-debuginfo-8.4.1-1.el7.aarch64.rpm
/root/mysql-community-test-8.4.1-1.el7.aarch64.rpm
/var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
/usr/lib/locale/locale-archive
删除root⽬录下⽂件⼤⼤于100m的⽂件
[root@localhost opt]# find /root/ -size +100M -exec rm -rf {} \;
[root@localhost opt]# find / -size +100M
/proc/kcore
find: ‘/proc/9440/task/9440/fd/6’: 没有那个⽂件或⽬录
find: ‘/proc/9440/task/9440/fdinfo/6’: 没有那个⽂件或⽬录
find: ‘/proc/9440/fd/5’: 没有那个⽂件或⽬录
find: ‘/proc/9440/fdinfo/5’: 没有那个⽂件或⽬录
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
/usr/lib/locale/locale-archive

创建⽂件列表,将⽂件名称以树的形式展示
需要使⽤yum指令进⾏安装
yum -y install tree
学习的积累,学习和⼯作中遇到问题并且解决以后,习惯性的发布⼀个csdn博客备
忘,不断地积累称为云计算⽅⾯的⼤佬
[root@localhost opt]#  tree
-bash: tree: 未找到命令
[root@localhost opt]# yum -y install tree
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
============================================================================
====================================
Package
架构
版本

⼤⼩
============================================================================
====================================
正在安装:
tree                   x86_64                   1.6.0-10.el7
base                    46 k
事务概要
============================================================================
====================================
安装  1 软件包
总下载量:46 k
安装⼤⼩:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm
|  46 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装    : tree-1.6.0-10.el7.x86_64
1/1
验证中      : tree-1.6.0-10.el7.x86_64
1/1
已安装:
tree.x86_64 0:1.6.0-10.el7
完毕!
[root@localhost opt]#
案例
以树状结构显示/var/log⽬录中的⽂件
[root@localhost opt]#  tree /var/log/
/var/log/
├── anaconda
│   ├── anaconda.log
│   ├── ifcfg.log
│   ├── journal.log
│   ├── ks-script-foxDg3.log
│   ├── ks-script-xoNdUE.log
│   ├── packaging.log
│   ├── program.log
│   ├── storage.log
│   ├── syslog
│   └── X.log
├── audit
│   └── audit.log
├── boot.log
├── boot.log-20240617
├── boot.log-20240711
├── boot.log-20240714
├── btmp
├── btmp-20240711
├── chrony
├── cron
├── cron-20240711
├── cron-20240714
├── dmesg
├── dmesg.old
├── firewalld
├── grubby
├── grubby_prune_debug
├── httpd
├── lastlog
├── maillog
├── maillog-20240711
├── maillog-20240714
├── messages
├── messages-20240711
├── messages-20240714
├── rhsm
├── secure
├── secure-20240711
├── secure-20240714
├── spooler
├── spooler-20240711
├── spooler-20240714
├── tallylog
├── tuned
│   └── tuned.log
├── vmware-network.1.log
├── vmware-network.2.log
├── vmware-network.3.log
├── vmware-network.4.log
├── vmware-network.5.log
├── vmware-network.6.log
├── vmware-network.log
├── vmware-vgauthsvc.log.0
├── vmware-vmsvc.log
├── vmware-vmsvc-root.log
├── vmware-vmtoolsd-root.log
├── wtmp
└── yum.log

五:scp实现linux系统和linux之间的克隆操作
实现linux和linux之间的⽂件传输
需要两个linux
克隆操作 使⽤克隆快速⽣成,要求关机后操作

 scp要求两台主机的系统都是linux系统
1.使⽤scp下载⽂件和⽬录
语法
scp [选项] ⽤户名@linux主机地址:/资源路径 linux本地⽂件路径
复制⽂件
1.查看克隆机的ip地址,并且清空opt⽬录中的⽂件

采用ipconfig查看克隆主机的IP地址

 再输⼊密码即可
复制⽬录
1.源主机opt⽬录下创建⽬录,并且将a.txt

b.txt c.txt复制⼀份在新⽬录中

 scp上传⽂件
语法 scp [选项] 本地主机资源路径 {远程主机}⽤户名@主机ip:放置路
上传⽂件,将克隆机中的a.txt⽂件上传到源主机中
# 以下操作都是在原主机192.168.135.129中执⾏的
# 清空opt⽬录中的⽂件
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# ls /opt/
#ssh管理克隆机
[root@localhost ~]# ssh -lroot -p22 192.168.135.132
The authenticity of host '192.168.135.132 (192.168.135.132)' can't be
established.
ECDSA key fingerprint is SHA256:CkKRXsYIVPxBU2aCwVy42OZPQpcOnsPp4lK0qesv0is.
ECDSA key fingerprint is
MD5:cb:e1:2c:97:ca:f1:54:7a:e6:c2:d1:22:32:41:04:c8.
# 第⼀次连接需要确认输⼊yes
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.135.132' (ECDSA) to the list of known
hosts.
#输⼊密码
root@192.168.135.132's password:
Last login: Sun Jul 14 15:58:47 2024
#---------------------------------------------------------------
#现在是⽤源主机登录克隆机进⾏操作
#查看ip地址
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.135.132  netmask 255.255.255.0  broadcast
192.168.135.255
inet6 fe80::5ed:b2b5:75a9:d491  prefixlen 64  scopeid 0x20<link>
inet6 fe80::aa7b:35ff:81db:2de7  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:10:ac:cc  txqueuelen 1000  (Ethernet)
RX packets 14518  bytes 20940364 (19.9 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 1346  bytes 123880 (120.9 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# 将克隆机上的a.txt 上传到 源主机上
[root@localhost ~]# scp /opt/a.txt root@192.168.135.129:/opt/
root@192.168.135.129's password:
a.txt
100% 1024KB  16.1MB/s   00:00
# 退出ssh连接
[root@localhost ~]# exit
登出
# --------------------------------------------------------
Connection to 192.168.135.132 closed.
# 查看源主机中是否已经存在a.txt⽂件
[root@localhost ~]# ls /opt/
a.txt #上传成功
[root@localhost ~]#
上传⽬录,把克隆机中的folder⽬录上传到源主机的opt⽬录
# 再次使⽤ssh管理克隆机
[root@localhost ~]# ssh -lroot -p22 192.168.135.132
root@192.168.135.132's password:
Last login: Sun Jul 14 16:23:48 2024 from 192.168.135.129
# 使⽤scp上传⽬录到源主机上,第⼆次连接直接输⼊密码,不需要输⼊账号
[root@localhost ~]# scp -r /opt/folder/ root@192.168.135.129:/opt/
root@192.168.135.129's password:
a.txt
100% 1024KB  12.9MB/s   00:00
b.txt
100% 5120KB  30.0MB/s   00:00
c.txt
100%   10MB  70.8MB/s   00:00
#退出ssh连接
[root@localhost ~]# exit
登出
Connection to 192.168.135.132 closed.
# 查看上传结果
[root@localhost ~]# ls /opt/
a.txt  folder
要求必须启⽤ssh服务
systemctl start sshd
systemctl stop sshd

六.计划任务
crontab [选项]
-l list查看当前⽤户的计划任务信息
-e edit编写计划任务
[root@localhost ~]# crontab -l
no crontab for root #没有计划任务
编写计划任务
crontab 分时⽇⽉周 要使⽤的完整路径 which命令

0和7都表示星期⽇
[root@localhost ~]# whereis tar
tar: /usr/bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz
[root@localhost ~]# which tar
/usr/bin/tar
案例 每分钟将/etc⽬录下的⽂件打包保存在tmp⽬录中
1.找到tar指令的which位置
[root@localhost /]# which tar
/usr/bin/tar
2.编辑计划任务
[root@localhost /]# crontab -e
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/
3.以上的任务会覆盖前⾯的⽂件,需要在指令中添加时间因素
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc-$(date "+%Y%m%d%H%M%S").tar.gz /etc
4.在脚本中出现%,必须使⽤转义符\
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc-$(date "+\%Y\%m\%d\%H\%M\%S").tar.gz
/etc
5.查看备份⽂件
显示
[root@localhost /]# ls -l /tmp/
总⽤量 116560
-rw-r--r--. 1 root root 11933315 7⽉  14 17:49 etc-20240714174901.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:50 etc-20240714175001.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:51 etc-20240714175101.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:52 etc-20240714175201.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:53 etc-20240714175301.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:54 etc-20240714175401.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:55 etc-20240714175501.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:56 etc-20240714175601.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:57 etc-20240714175701.tar.gz
-rw-r--r--. 1 root root 11933315 7⽉  14 17:58 etc-20240714175801.tar.gz
时间
# 输出时间
[root@localhost ~]# date "+%T"
17:24:56
#输出⽇期和时间
[root@localhost ~]# date "+%F%T"
2024-07-1417:25:03
#在⽇期和时间中添加间隔
[root@localhost ~]# date "+%F-%T"
2024-07-14-17:25:11
[root@localhost ~]# date "+%F %T"
2024-07-14 17:25:15
[root@localhost ~]# date "+%F_%T"
2024-07-14_17:25:29
# 输出年
[root@localhost ~]# date "+%Y"
2024
# 输出年⽉⽇
[root@localhost ~]# date "+%Y%m%d"
20240714
# 输出年⽉⽇时分秒
[root@localhost ~]# date "+%Y%m%d%H%M%S"
20240714172653
[root@localhost ~]#
50

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值