linux系统-延迟及定时任务与find命令的使用

时间:2022-06-10 21:04:23
***********系统延时及定时任务与find命令使用***********

例子
1.at + time
[root@dem~]#at 11:11
at> rm -fr *                     ####延迟动作
at> <EOT>                         ctrl+d表示发起动作
job 6 at tue Aug 1 11:11:00 2017

at的用法
at -l | atq           查看当前任务
atrm | at -d          取消指定任务
at -c                 #查看任务内容
at  now+1min          #延迟一分钟
at -f file            #延迟执行文件中的内容   例子:at now+1min -f /mnt/atfile
at -m                 #延迟命令没有输出时人然发送邮件给执行者
at -M                 #延迟命令有输出时但不发送邮件给执行者
mail                  #查询当前用户信息执行的延迟任务


/etc/at.deny    用户黑名单,在此名单中出现的用户不能执行at命令
/etc/at.allow   用户白名单,名单默认不存在,但名单一旦出现,黑名单失效
                系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令
例子
vim /etc/at.deny  进去写入禁止用户的名单

2.定时任务###
#定时任务是永久的

#定时任务程序crond,在系统中每分钟做任务扫描
#发起方式一#
crontab -u username -e   让哪个用户发起定时任务
crontab -u username -r   删除该用户的定时任务
crontab -u username -l   查看该用户发起的定时任务
例子
* * * * * touch file

* * * * *      星号从前往后一次为分、时、天、月、周。(全星表示每分钟执行一次)
例子
* * */2 * *         表示每隔两天执行一次
05 * * * *          每小时整点过五分钟*
05 02 * * *         每天2:05am
30 08 01 * *        每月第一天8:30pm
00 07 25 12 *       12月25日7:00am
30 16 * 8 5         每个星期五4:30pm
*/5 * * * 8         每隔五分钟
*/10 9-17 1,15 * *  在每月第一天和第十五天9:00am至5:00pm之间每隔10分钟执行,
0 0 1 jan 0         1月1日午夜和1月的每个星期日(不in


#发起方式二#
vim /etc/cron.d/filename
编写格式如下
* * * * *  root rm - rf /mnt/*

/etc/cron.deny    用户黑名单,在此名单中出现的用户不能执行at命令
/etc/cron.allow   用户白名单,名单默认不存在,但名单一旦出现,黑名单失效
                系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令
3.系统临时文件的管理####
#系统中服务在正常运行时会产生临时文件
格式
/usr/lib/tmpfiles.d/*.conf               ##系统中临时文件的配置    
文件类型          文件名称        文件权限      文件所有人    文件所有组       文件存在时间
  d          例如/mnt/westos     777           root        root           10s
写这条命令westos不需要建立他会自动建立


systemd-tmpfiles --create /usr/lib/tmpfiles.d/*  ##执行临时文件配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*     清理目录中的文件
#####磁盘管理####
4.mbr
  mpt
  硬盘有效性表示
  主分区
  扩展分区
  逻辑分区
5.磁盘查看命令###
fdisk -l         系统中的所有磁盘设备
df -Th           系统正在挂载的磁盘设备
blkid            系统可以挂载的磁盘设备id

####磁盘的分区###
fdisk /dev/vdb   对目标磁盘进行分区操作
fdisk -l         列出所有安装的磁盘及分区信息
partprobe     分区之后,让内核更新分区信息,否则系统需要restar后才能识别新分区
cat /proc/partitions 可以查看分区信息
####改变分区表记录方式###
[root@server0~]#parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands
(parted)mklabel
New disk label type? gpt
(parted)quit
Information:You may need to update /etc/fstab.
######添加swap交换分区
fdisk /dev/vdb
先新建一块磁盘然后在fdisk /dev/vdb模式里输入t进行改变磁盘类型为linux swap
mkswap /dev/vdb1     格式化/dev/vdb1这样才能被系统识别
swapoff /dev/vdb1    关掉swapoff分区并且取消挂载
swapon -a /dev/vdb1  激活分区
swapon -s      显示信息
永久挂载swap步骤如下
vim /etc/fstab
/dev/vdb1   swap  swap   defaults 0 0
只要一激活就会自动加载


#####把msdos转化为gpt####
先关闭正在使用的/dev/vdb的分区设备swap
然后parted /dev/vdb在这个里面输入mklabel让后在输入gpt让后q推出


####磁盘的挂载###
blkid 先查看可以挂载的磁盘
对新建的磁盘先进行格式化(格式化的目的是使得磁盘能让操作系统认识磁盘的结构)
mkfs.xfs /dev/vdb1   (格式化新建的磁盘)格式化磁盘后系统才能识别并分析磁盘
mount /dev/vdb /mnt   临时挂载到mnt上
永久挂在的方法
编辑vim /etc/fstab如下
/dev/vdb1      /mnt   xfs     defaults  0 0
:w退出保存
mount -a 重新加载使文件中的策略生效
给文件中添加swap分区
dd if=/dev/zero of=/swpfile bs=1M cout=1000
挂载/swpfile
vim /dev/vdb1
/swpfile     swap  swap     defaults  0  0
swapoff /dev/vdb1    关掉swapoff分区并且取消挂载
swapon -a /dev/vdb1  激活分区并且挂载swapon

6.find命令的使用

find     查找位置    -条件    条件值     -exec 动作 {} \;
            -name   查询名字为什么的文件或者目录
            -not    条件
            -user   查询用户为什么
            -group
            -size   尺寸大小为多少 + -(表示的是大于或者小于)
            -perm(权限)    —是并且 /是或者  
            --maxdepth  最大的查询深度和mindepth可以配合使用
            --mindepth
            -a      并且
            -o      或者
            
例子
 find / -user mail -exec vp  -rp {} /mnt/ \;
 表示用户为mail的文件全部拷贝到/mnt下
 find / -group mail -exec vp -rp {} /mnt/ \;
 表示组为 mail的文件全部拷贝到/mnt下
 find /mnt -user student
 在mnt下找到用户是student的用户
 find /mnt -user linux
 在mnt下找到用户是linux的用户
 find /mnt -user student -a -group linux