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.txt0 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