计划任务和查找文件

计划任务

一次性计划任务 atd

at命令管理一次性计划任务 服务atd

at 管理工具

at  time  创建计划任务,交互式输入,ctrl+d退出
at	time < myscriptfile 从脚本输入
at -l列出计划任务
at -c jobnum  查看计划任务的详细信息
at -d jobnum   删除计划任务
atq  查看计划任务
at -q 指定任务队列a-z(优先级) a优先级高
/var/spool/at   任务内容

time 举例
 8:05am
 4pm +3days
 4:00 2022-04-10
 teatime tomorrow
 具体示例文件:/usr/shar/doc/at/timespec
 
 at 对用户进行限制
  /etc/at.allow   允许
  /etc/at.deny   拒绝

周期任务crond

命令crontab 管理工具

crontab -l #列出当前用户下的 cron 服务的详细内容
crontab -u user1 -l #列出指定用户 user1 下的 cron 服务的详细内容
crontab -r #删除 cron 服务
crontab -e #编辑 cron 服务
/var/spool/cron  存放计划任务

写法

可以参考/etc/crontab 模板

分 时 日 月 周 用户 命令(尽量写绝对路径)

分:0-59

时:0-23

日:1-31

月:1-12

周:0-7

特殊符号:

  • *代表任意
  • /指定间隔时间 */10 每隔10分钟执行
  • -代表从某个数字到某个数字之间执行 7-12
  • , 6,10-13,20 指定时间 6点,10到13点,20点执行

cron任务保存文件

建议不使用crontab管理命令来创建周期计划任务,而是在/etc下相关文件写周期任务

/etc/crontab 系统任务调度的配置文件

/etc/cron.*

/etc/cron.d自定义

/etc/cron.deny 拒绝

/etc/cron.allow 允许

cron.d/ #是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来
执行的,那么就放在这个目录下面。
cron.deny #控制用户是否能做计划任务的文件;
cron.monthly/ #每月执行的脚本;
cron.weekly/ #每周执行的脚本;
cron.daily/ #每天执行的脚本;
cron.hourly/ #每小时执行的脚本;
crontab #主配置文件 也可添加任务;

查找处理文件

locate 和find 都要对目录有rx权限才能搜到

locate 基于本地数据库查找文件

  • 数据库必须时管理员更新的,手动更新数据库updatedb,生成后数据库会自动更新数据库
  • 完整的路径将被查找,不止文件名 模糊匹配,文件名可以部分
  • 要对被搜索的目录有rx权限, 有RX权限 ,才能看到目录下的内容

locate 文件名

-i 忽略大小写

-n 显示匹配到的前n条记录

find查找文件,遍历查找

find [dir1...] [匹配规则..] [处理...]

精确匹配,文件名要正确

实时搜索目录树,比locate慢但更精确

不给定查找目录,默认当前目录,要对目录有rx权限

不指定匹配规则,将匹配所有文件

find查找条件

  • 根据文件名,inode
  • 根据属主,属组查找
  • 根据文件类型
  • 根据逻辑组合条件
  • 根据文件大小
  • 根据时间戳
  • 根据权限

匹配规则

  • 目录层次 maxdepth mindepth

find / maxdepth 3 mindepth 2 -name '*.conf'

  • 文件名

-name 文件名称

-iname 文件名称 不区分大小写

-inum n: 按inode号查找

-links n: 链接数为n的文件

  • 拥有人拥有组

-uid UserID: 查找属主为指定的UID号的文件

-user

-gid GroupID: 查找属组为指定的GID号的文件

-group

-nouser: 查找没有属主的文件

-nogroup: 查找没有属组的文件

  • 逻辑运算符

-a : 表示并且,默认不加就是-a

-o:代表或者

-not 或者 ! :非

find /home ( -user user1 -a -user4 user4 ) -ls

find /home ( -user user1 -o -group user4 ) -ls

find /home ( -user user1 -not -group admin ) -ls

  • 文件类型

-type f: 查找文件类型为普通文件

​ b 块设备

c 字符文件

d 目录

l 链接文件

p 管道文件

s 套接字文件

  • 文件大小

-size 10M 等于10M (9,10]

-size -10M 小于10M [0,9]

-size +10M 大于10M (10,oo)

  • 文件权限

find -perm 644 -ls

find -perm /222 -ls 拥有人,拥有组或者其他人只要有一个有2的权限即可

find -perm -222 -ls 拥有人,拥有组或者其他人都要有2的权限

  • 时间戳

常用选项:

以”天”为单位:

-atime [+|-]#

​ #: [#,#+1)

​ +#: [#+1,oo)

​ -#: [0,#)

-mtime

-ctime

  • atime :access time 文件最后一次访问的时间
  • mtime: modify time 文件最后一次被修改的时间,属性修改
  • ctime: change time 文件最后一次被改变的时间,内容修改

以“分钟”为单位:

-amin ; -mmin ;-cmin

例如:

find /tmp -atime +7

在这里插入图片描述

常用处理

  1. -print: 默认动作,显示至屏幕

  2. -ls: 类似于对查找到的文件执行 ls -l 命令

  3. -delete: 删除查找到的文件

  4. -fls file: 查找到的所有长格式的信息保存至指定文件中

  5. -ok COMMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令,且都会交互式要求用户确认

  6. -exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令;

  7. {}: 用于引用查找到的文件名称自身

  8. 由于很多命令不支持管道(|)来传递参数,而日常工作中有这个必要,所以就有了 xargs 命令;进行传参

​ # find |xargs COMMAND

​ # find -name "*.sh" | xargs chmod 755

find /root/scripts/ -name '*.sh' ! -perm /111 -ok chmod a+x {} ;

find /etc/ -name "*.conf" -exec cp -a {} /tmp ;

find -name 'test*' | xargs -I {} cp {} dir/

实例1:将配置文件备份到指定目录下

# find . -name “*.conf” -exec cp -r {} /testdir/ ;

实例2:.提示删除存在时间超过3天以上的属主为young的临时文件

# find /tmp -ctime +3 -user young -exec rm -fr {} ;

实例3:在主目录中查找可被其它用户写入的文件,将其w权限去掉

# find ~ -perm -002

# find ~ -perm -002 -exec chmod o-w {} ;

实例4:查找/var目录下属主为root,且属组为mail的所有文件

# find /var -user root -group mail -ls #默认关系就是与

实例5:查找/var目录下不属于root、lp、gdm的所有文件

# find /var ! -user root ! -user lp ! -user gdm

实例6:查找/var目录下最近一周内其内容修改过,同时属主不为root

# find /var/ -mtime -7 ! -user root -ls

实例7:查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

# find / -nouser -o -nogroup -a -atime -7

实例8:查找/etc目录下大于1M且类型为普通文件的所有文件

# find /etc/ -size +1M -type f

实例9:查找/etc目录下所有用户都没有写权限的文件

# find /etc/ ! -perm /222

实例10:查找/etc目录下至少有一类用户没有执行权限的文件

# find /etc/ ! -perm -111 # 至少有一类用户没有反过来就是所有用户都有

实例11:找出/tmp目录下,属主不是root,且文件名不以f开头的文件

# find /tmp ( -not -user root -a -not -name 'f*' ) -ls

# find /tmp -not ( -user root -o -name 'f*' ) –ls

posted @ 2023-05-09 16:36  loser_xu  阅读(31)  评论(0编辑  收藏  举报