实训第六天(find+scp+crontab)

All day

find命令

 1.主要进⾏⽂件搜索

 2.基本语法  find [⽂件路径] [选项 选项的值]

-name *

-type f|d

常⻅的选项

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

-type f代表普通⽂件,d代表⽬录

1、按名字查询——-name 文件名

找到httpd.conf⽂件

搜索名字含tab的文件:

[root@peter ~]# find /etc/ -name *tab

[root@peter ~]# find /etc/ -name '.*'

搜索以.sh结尾的文件:

[root@peter ~]# find /etc -name "*.sh" -o -type d

[root@peter ~]# find /mnt -name "cbd*" -o -type f

[root@peter ~]# find /boot -type d | wc -l   (利用管道符统计文件个数)

获取/etc/中以.conf结尾的文件

2.按文件大小查询
(1)-size +或- 文件大小(文件大小)  [常⽤单位 k M G]

size值 搜索等于size的⽂件  -size值 (0,size值)  +size值 (size值,正⽆穷)

查找/opt目录下大于2M的文件并将其删除:

[root@web2 ~]# find /opt/ -size +2M -exec rm -rf {} \;

[root@peter ~]# find /boot/ -size +300k

查找大于10M小于50M的数据:

[root@peter ~]# find /boot/ -size +10M -size -50M

(2)扩展命令 dd,使⽤dd创建扩展命令,⽣成指定⼤⼩的测试⽂件,

格式:dd if=/dev/zero of=⽂件名称 bs=1M count=1

if表示输⼊⽂件  of表示输出⽂件  bs代表字节为单位的块⼤⼩ count代表被复制的块,其中/dev/zore是⼀个字符设备,会不断地返回0字节的⽂件

[root@web2 ~]# dd if=/dev/zero of=/opt/a.txt bs=100M count=1  #  创建名称为a.txt,⼤⼩为100M的⽂件

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

记录了1+0 的读⼊

记录了1+0 的写出

5242880字节(5.2 MB)已复制,0.0111468 秒,470 MB/秒

[root@web2 ~]# ls -lh /opt/  # 查看⽂件信息,使⽤⽂件⼤⼩单位 默认m

-rw-r--r--. 1 root root 5.0M 7月  15 20:06 aaa.mp4

[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

3、按文件权限查找:

[root@localhost ~]#find -perm -u=root /opt

4、按文件的最后修改时间查询

格式:find ⽂件路径 -mtime +days/-days  -mtime 根据⽂件最后修改时间搜索⽂件  +号 搜索⼏天之前的⽂件信息  -号 搜索⼏天之内的⽂件信息

案例1 搜索三天以前的信息,不包含第三天的,⽽且只搜txt⽂件

案例2: 搜索三天以内的.txt⽂件 ,包含今天

5.stat 获取文件的时间信息(创建、修改和访问)

格式:[root@web1 ~]# stat /opt/test.conf

创建文件

格式:touch -m -d 日期时间格式 文件名称(文件不存在就创建,存在时只修改时间)

案例:

创建文件并用p选项指定文件修改时间

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

修改或创建文件,并设置最后修改时间
[root@web1 ~]#touch -m -d "2024-7-14 00:00" /opt/abc.txt  # 设置最后修改时间为7-14

[root@web1 ~]# stat /opt/abc.txt  # 查看文件信息

6.scp 实现linux系统和linux之间的克隆操作

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

上传⽂件,将克隆机中的a.txt⽂件上传到源主机中

其他常用选项:

-p:保留文件的最后修改时间、最后访问时间和权限模式;

-c:使用指定的加密算法进行数据加密;

-q:不显示传输进度信息;

-P:指定 SSH 服务器的端口号(如果不是默认的 22 端口);

-i:指定用于身份验证的私钥文件路径(如果使用 SSH 密钥对进行认证)。

如果远程主机上的 SSH 服务器使用非标准端口 2222,可以使用以下命令上传文件:

scp -p 2222 /path/to/local/file user@remote:/path/to/destination
如果希望使用 SSH 密钥对进行身份验证,可以通过添加-i选项指定私钥文件的路径:

scp -i /path/to/private_key /path/to/local/file user@remote:/path/to/destination

[root@localhost ~]# ls /opt/

[root@localhost ~]# ssh -lroot -p22 192.168.2.11 #ssh管理克隆机

[root@localhost ~]# scp /opt/a.txt root@192.168.135.129:/opt/  # 将克隆机上的a.txt 上传到 源主机上

root@192.168.2.11's password:

txt
[root@localhost ~]# ssh -lroot -p22 192.168.2.11  # 把克隆机中的folder⽬录上传到源主机的opt⽬录

[root@web1 ~]#scp -r /opt/d0/a.txt root@192.168.2.12:/opt  #-r表示递归,上传目录及目录下的文件

[root@localhost ~]# scp -r /opt/folder/ root@192.168..2.11:/opt/

[root@localhost ~]#systemctl start sshd # 必须启⽤ssh服务

[root@localhost ~]#systemctl stop sshd

7、dd:创建文件时规定文件大小

dd介绍:

dd 是一个用于复制文件和转换文件的工具。

在这个命令中:

if=/dev/zero 表示输入文件为 /dev/zero,这是一个提供连续零字节的设备文件。

of=/opt/hh.txt 指定输出文件为 /opt/hh.txt。

bs=100M 表示每次读写的块大小为 100 兆字节(M)。

count=1 表示读写的块数量为 1。

综合起来,这个命令的作用是在 /opt 目录下创建一个大小为 100 兆字节的文件 hh.txt,文件的内容全部为零。

在opt1目录下创建a.txt,b.txt,c.txt

8.计划任务cron

选项:-e 编辑计划任务    -l 查看现有计划任务

用途:按照设置的时间间隔为用户反复执行某一项固定系统任务

软件包:cronie、 crontabs   系统服务:crond    日志文件:/var/log/cron

[root@web2 ~]# ls /opt/

d0

[root@server0~]# tail /var/log/cron     //了解cron执行消息....

Nov 11 21:20:01 localhost CROND[12759]: (root) CMD(/usr/lib64/sa/sa1 1 1)

分、时、日、月、周 

30、23、 *、 *、 *

30、23、 *、 *、 5

30、23、 *、 *、 7

30、23、 *、 *、 1-5

30、23、 *、 *、 1,3,7

 *、23、 *、 *、 1,3,7

 5、 *、 *、 *、 7      # 每个小时的第5分钟执行一次

*/5、 *、 *、 *、 7     # 每5分钟执行一次

30、 8、 *、 *、 */8    # 每8周早上8点半

30、 8、 1、 *、 1      # 满足任何一个1,就执行一次

案例:

[root@web2 ~]# which ls  # 注意:要使用完整路径  which命令

alias ls='ls --color=auto'

/usr/bin/ls

每分钟自动将/opt下的文件名写到root目录下的list中

[root@web2 ~]# crontab -e  # 编辑计划任务

[root@web2 ~]# crontab -l  # 查看计划任务

*/1 * * * * /usr/bin/ls /opt/ >> /root/list  # 每分钟执行一次

49 * * * * /usr/bin/echo "我是希腊女神echo" > /root/echo.txt  # 每小时的49分执行一次

[root@web2 ~]# whereis tar

tar: /usr/bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz

每2分钟将/etc目录下的文件打包放到/tmp下,命名为/tmp/etc.tar.gz

[root@web2 ~]# crontab -l

*/2 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/  # 以上的任务会覆盖前⾯的⽂件,需要在指令中添加时间因素

*/1 * * * * /usr/bin/tar -zcvf /tmp/etc_$(date "+\%Y\%m\%d\%H\%M\%S").tar.gz /etc/    # 在脚本中出现%,必须使⽤转义符\

[root@web2 ~]# ls /tmp/  # 查看备份⽂件

etc_20240715205001.tar.gz

9.tree:用于以树状结构显示目录和文件

基本用法: 直接在终端输入 tree ,将显示当前目录的树状结构。

指定目录: 如果要显示特定目录的树状结构,只需在命令后添加目录路径,例如:

tree /home/user/directory

控制显示深度: 使用 -L 选项指定显示的深度,例如显示 2 层深度:

tree -L 2

只显示目录: 使用 -d 选项,例如:

tree -d

显示文件权限等详细信息: 使用 -p 选项,例如:

tree -p

输出到文件: 可以将树状结构输出到文件中,例如:

tree > tree_output.txt

10、crontab:计划任务

Crontab 介绍:
Crontab 是类 Unix 操作系统(包括 Linux 系统)中的一个用于设置定时任务的工具。

它通过一种特定的语法来指定任务执行的时间规则。例如,* * * * * command 表示每分钟执行一次 command 命令。

其时间设置字段从左到右依次为:分钟(0 - 59)、小时(0 - 23)、日(1 - 31)、月(1 - 12 或 jan - dec)、星期(0 - 7 或 sun - sat,0 和 7 都表示星期日)。

研究时间戳

11、touch:创建文件时规定创建时间

touch创建文件,没有文件就新建,有文件就修改

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

创建文件并用p选项指定文件修改时间

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

修改或创建文件,并设置最后修改时间
[root@web1 ~]#touch -m -d "2024-7-14 00:00" /opt/abc.txt  # 设置最后修改时间为7-14

[root@web1 ~]# stat /opt/abc.txt  # 查看文件信息\

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值