一、文件查找
1.查找文件内容
命令:grep 'keywords' /dir_path/filename
2.查找系统命令
命令:which command
3.查找命令及配置文件位置
命令:whereis command
4.find查找
find $find_path -name|-type|-perm|-size|-atime|-mtime|-ctime
4.1按文件名查找
find ./ -name "filename"
find ./ -name "*txt"
通配符
find ./ -iname "*txt"
忽略大小写
4.2按文件大小查找
find ./ -size +5M
大于
-5M
小于
5M
等于
4.3按时间查找
find ./ -[mtime|ctime|atime] +30
find ./ -[mmin|cmin|amin] -20
![image-20240507162725438](https://img-blog.csdnimg.cn/img_convert/c305348b7eeec0c172bbacf100177706.png)
-atime = access访问时间,
查找在指定时间曾被存取过的文件或目录,单位以24小时计算
如cat, less, more
等
但chmod, chown, ls, stat
等不会修改些时间,
使用ls -utl
可以按此时间顺序查看;
-mtime = modify改变时间
查找在指定时间曾被更改过的文件或目录,单位以24小时计算
内容修改时间会改变,最后一次内容修改时间,
如vim
保存后等,
修改时间发生改变的话,atime 和 ctime 也相应跟着发生改变
.
-ctime = change修改时间
查找在指定时间之时被更改的文件或目录,单位以24小时计算
属性修改时间会改变,
如 chmod, chown 等状态时间改变,但修改时间mtime
不会改变
4.4按文件类型查找
find ./ -type f
普通文件
d
目录
l
软连接
b
设备块
4.5按文件权限查找
-
查找当前目录下文件权限为755的文件及目录
find ./ -perm 755
4.6参数逻辑关系
- 并且
-a
find / -name "*.txt" -a -type f
- 或者
-o
find / -name "*.txt" -o -type f
- 取反:
!
find /etc/ ! -name "*.conf"
案例:分别找出test5 和 除了test5的文件
[root@localhost ~]# find /home/ -name *test5*
[root@localhost ~]# find /home/ ! -name "test5*" # !--取反
4.7查找后的action
4.7.1 exec
find /etc -name "ifcfg*" -exec cp -rf {} /tmp \;
exec命令:对之前查找出来的文件做进一步操作
{}为前面查找到的内容,
\; 表示动作结束
4.7.2 xargs
find /home/ -name "test*" | xargs -i cp {} /tmp/
xargs 参数传递
4.7.2 exec与xargs的区别
-exec:频繁启动终止进程。如果执行的动作太多,就会报错。(参数是一个一个传递的,传递一个参数执行一次命令。)
xargs:只调用一个进程,直到所有任务处理结束,才会终止这个进程。(将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。)
PS:xargs不能操作文件名有空格的文件;
如果有100万个 文件名包含空格的文件 则可以考虑 给文件改名,然后用xargs处理。
二、打包压缩
1.打包及压缩工具
-
打包工具:
tar(打包)
-
压缩工具
gzip .gz
bzip2(只压缩) .bz2
zip .zip
xzip .xz
2.tar打包解包
2.1 tar打包
tar -cvf dir.tar dir
tar -cf dir.tar dir
2.2 tar解包
tar -xvf dir.tar
tar xf dir.tar
3.各类压缩及解压缩工具
-
gzip
-
压缩:
gzip filename
-
解压缩:
gzip -d filename.gz
gunzip filename.gz
-
-
bzip2
yum -y install bzip2
-
压缩:
bzip2 filename
-
解压缩:
bzip2 -d filename.bz2
bunzip2 filename.bz2
-
-
xzip 与tar连用
-
zip
-
压缩:
zip -r dirname.zip dir
-
解压缩:
unzip dirname.zip
-
解压到指定位置:
unzip dirname.zip -d /usr/local/src
-
4.tar打包解包+各类压缩
4.1 tar打包+各类压缩
tar -cvzf dir.tar.gz dir
tar -cvjf dir.tar.bz2 dir
tar -cvJf dir.tar.xz dir
4.2 tar解包+各类压缩
tar -xvzf dir.tar.gz
tar -xjvf dir.tar.bz2
tar -xJvf dir.tar.xz
-
解压到指定位置:
tar -xf dir.tar.gz -C /usr/local/src
三、邮件
1.配置邮件
yum install -y mailx
vim /etc/mail.rc
set from=\$mail_addr
set smtp=smtp.163.com
set smtp-auth-user=\$mail_addr
set smtp-auth-password=SMTP授权码
set smtp-auth=login
2.发送邮件
工作级备份日志邮件
cat /etc/passwd | mail -s "邮件主题" mail_addr
cd /var &> /dev/null && tar -czf log-`date +%F`.tar.gz log/
&& echo "备份成功"| mail -s "备份日志" mail_addr
|| echo "备份失败"| mail -s "备份日志" mail_addr
cd /vr &> /dev/null && tar -czf log-`date +%F`.tar.gz log/
&& echo "备份成功"| mail -s "备份日志" mail_addr
|| echo "备份失败"| mail -s "备份日志" mail_addr