find,exec,scp,计划任务

avatar
作者
筋斗云
阅读量:0

一,find

find查找文件:

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

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

格式:find  文件路径

[root@one01 ~]# touch /opt/zbr

[root@one01 ~]# find / -name "zbr"

/opt/zbr

通配符:

在linux 系统中,如果要查找的⽂件的名称不清晰,可以使⽤部分⽂件名+*搜索

包含“zb”的:

[root@one01 ~]# find / -name "*zb*"

/usr/lib/firmware/mts_mt9234zba.fw

/usr/share/locale/zbl

/usr/share/mime/application/x-nzb.xml

/usr/share/mime/image/vnd.zbrush.pcx.xml

/opt/zbr

[root@one01 ~]# find /opt/ -name "*zb*"

/opt/zbr

以“conf”为结尾:

[root@one01 ~]# ls -l /etc/*.conf

-rw-r--r--. 1 root root   55 4月  11 2018 /etc/asound.conf

-rw-r--r--. 1 root root 1108 4月  13 2018 /etc/chrony.conf

[root@two01 ~]# find /etc/ -name "*.conf" -type f

/etc/resolv.conf

/etc/libaudit.conf

以an为开头:

[root@one01 ~]#ls -l /etc/an*

-rw-------. 1 root root 541 4月  11 2018 /etc/anacrontab

[root@two01 ~]# find /etc/ -name "an*" -type f

/etc/sysconfig/anaconda

/etc/anacrontab

/etc/libreport/workflows.d/anaconda_event.conf

二,Window中的时间

创建,修改,访问时间

stat查看文件时间信息:

[root@one01 ~]# stat /opt/zbr

  文件:"/opt/zbr"

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

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

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

环境:unconfined_u:object_r:usr_t:s0

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

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

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

创建时间:-

案例创建⽂件,并配置⽂件的修改时间

格式:touch -m -d ⽇期时间格式 ⽂件名称

[root@one01 ~]# touch /opt/a.txt

创建的时候修改日期,touch 文件名 -m -d “日期时间格式”

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

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

[root@one01 ~]# 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

使用xargs将查询结果交给rm删除:

find /opt/ -name "*.txt" -type f -mtime +3 xargs rm -rf  //删掉三天前以.txt为结尾的文件

通过⽂件的最后修改时间搜索⽂件

格式:find ⽂件路径  -mtime +days/-days

-mtime 根据⽂件最后修改时间搜索⽂件

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

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

查找三天以前的⽂件

[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

使用find按时间搜索,找到旧的文件删掉

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

/opt/d.txt

[root@one01 ~]# find /opt/ -mtime -3

/opt/

/opt/zbr

/opt/a.txt

/opt/b.txt

/opt/c.txt

size用法:

根据文件size大小搜索文件

格式:find 路径 -size 文件大小[常用单位kMG]

+size 大于这个值的

-size 小于这个值的

扩展命令dd:

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

if表示输⼊⽂件

of表示输出⽂件

bs代表字节为单位的块⼤⼩

count代表被复制的块

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

[root@two01 ~]# dd if=/dev/zero of=/opt/aaaa.mp4 bs=5M count=1  //创建一个5M的文件

记录了1+0 的读入

记录了1+0 的写出

5242880字节(5.2 MB)已复制,0.0236586 秒,222 MB/秒

[root@two01 ~]# ls /opt/

aaaa.mp4  aaa.txt  d1

使⽤scp下载⽂件和⽬录

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

下载,把数据从远程主机保存到本地主机

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

[root@one01 ~]# scp root@192.168.195.11:/opt/a.txt /opt/

//把195.11机子上opt目录下的a.txt文件上传到本机的opt目录下

传到另一台机子上

[root@one01 ~]# scp -r /opt/d0/a.txt root@192.168.195.12:/opt/d1

//把本机上opt目录d0下的a.txt文件上传到195.12中opt/d1目录下

计划任务

格式:crontab 选项

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

-e edit编写计划任务

编写任务计划书:crontab 详细路径

[root@two01 ~]# crontab -e    //编写

no crontab for root - using an empty one

crontab: installing new crontab

*****五个星号对应“分时日[0和7都表示星期日]月钟”

[root@two01 ~]# crontab -e

30 * * * * /usr/bin/echo "我是三十分钟执行的" >> /root/echo.txt

*/1 * * * * /usr/bin/echo "我是每分钟都执行的" >> /root/min.txt

[root@two01 ~]# cat /root/min.txt

我是每分钟都执行的

[root@two01 ~]# cat /root/echo.txt

我是三十分钟执行的

压缩打包:把etc目录下的东西打包载/tmp/etc.tar.gz下

[root@two01 ~]# tar -zcvf /tmp/etc.tar.gz /etc

[root@two01 ~]# ls /tmp

etc.tar.gz

[root@two01 ~]# crontab -l

*/2 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/  //每两分钟打包一次

[root@two01 ~]# rm -rf /tmp/etc.tar.gz

/var/spool/mail/root有新文件

//(会显示有新邮件,这个没看暂时)后面ls /tmp的时候有文件etc.tar.gz

[root@two01 ~]# crontab -l  //在脚本中出现%得用转义符\

*/1 * * * * /usr/bin/tar -zcvf /tmp/etc_$(date "+\%Y \%m \%d \%h").tar.gz /etc/  //每分钟都打印一个包          //创建带有相关日期的文件

[root@two01 ~]# ls /tmp/

etc_202407157月.tar.gz

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!