萌新的linux之旅16
#
系统延时及定时任务
#
一:系统延时任务(延时任务是临时的)
1.at命令
at + time
ctrl+d 保存延时命令
at -l #查看当前任务
at -c +任务号 #查看任务内容
atrm +任务号 #取消指定任务
at now+1min #延时一分钟
at -f file #延时执行文件中的内容(文件不是脚本)
at -m #延时命令没有输出时也发送邮件给执行者,当你的命令没有输出时,也发送邮件给执行者,但邮件内容是空的
at -M #延时命令即使有输出也不会发送邮件给执行者
mail 可以收邮件,但是是有输出的命令才可以发起邮件
2.at命令的执行权力设定
/etc/at.deny ##用户黑名单,在名单里面直接添加用户名,在此名单中的用户不能执行at命令
/etc/at.allow ##用户白名单,此名单默认不存在,本身只有at.allow这个文件,但是白名单一建立,即/etc/at.allow建立,黑名单失效,而且默认系统中所有用户都不能执行at命令,只有白名单中的用户才可以使用at命令,和黑名单一样,在名单里面直接添加用户名,白名单优先级高于黑名单,另外两个名单都对超级用户无效,因为有权,任性。并且两个文件都是即改即生效。
二:定时任务(定时任务是永久的)
定时任务程序crond,在系统中每分钟都在做任务扫描
1.发起方式
发起方式一
crontab -u username -e ##username用户建立定时任务(默认vi编辑器进入编辑)
crontab -e 以自己身份发起命令
此命令会进入一个文本,该文本的填写方式是:
可以写多行
分 时 天 月 周 + 命令
crontab -u username -l ##查看某用户的定时任务
crontab -u username -r ##删除某用户的定时任务
man 5 crontab ##查看crontab命令
发起方式二
vim /etc/cron.d/haha(filename) 创建一个文件并在里面填写,此文件可以填写多个用户,文件名谁发起就是谁的。
注意:/etc/cron.d 是脚本文件,需要保证cron.d有执行权限,才能使目录里面的任务文件生效
填写方式是:
分 时 天 月 周 + 用户 + 命令
* * * * * root touch /home/student/file{1..9} ##表示每分钟在/home/student目录下建立9个文件file
2.时间表示方法
表示方式:分 时 天 月 周 命令 (可以精确到分钟,即最短可以每分钟执行一次)
* /1 * * * #每隔一天执行一次
* 09-17/1 * * * #9点到17点,每隔1小时执行一次
* * 01,30 * * #每月1号,30号执行一次
1 2 3 4 5 + 命令(五个必须全写)
1 —- 分钟
2 —- 小时
3 —- 天
4 —- 月
5 —- 周
上述数字填写范围
* —- 每(如每分钟)
1(分钟) —- 0-59
2(小时) —- 0-23
3(天) —- 1-31
4(月) —- 1-12
5(周) —- 0-7 (0和7都表示星期天)
例:* * * * * 表示每分钟都执行一次
2.crontab命令的执行权力设定
/etc/cron.deny ##用户黑名单,此名单中的用户不能执行crontab命令
/etc/cron.allow ##用户白名单,此名单默认不存在,建立后默认系统中所有用户均没有crontab命令执行权限,只有名单中的用户才有crontab命令执行权限,都是即改即生效,crontab命令的白名单优先级同样高于黑名单,和at 命令黑白名单基本一样
三:系统中的临时文件
系统中服务在正常运行时会产生临时文件
在系统中 /usr/lib/tmpfiles.d/ 目录下存放
系统的临时文件配置是 /usr/lib/tmpfiles.d/*.conf
自己创建的临时文件配置文件必须以.conf结尾
临时文件配置的编写方式是:
文件类型 文件名 文件权限 文件所有人 文件所有组 文件存在的时间
d /mnt/text 777 root root 30s
##表示在/mnt目录下创建临时目录text,并且30秒内不能被删除
systemd-tmpfiles –create /usr/lib/tmpfiles.d/* ##执行临时文件配置
systemd-tmpfiles –clean /usr/lib/tmpfiles.d/* ##清理临时文件
磁盘管理
1.名词解释
mbr:分区方式
mpt:分区表
硬盘有效性标识
主分区
扩展分区:扩展分区相当于一个容器
逻辑分区:就是将扩展分区分成几个小分区
2.磁盘查看命令
fdisk -l ##系统中的所有磁盘设备(可以看到所有磁盘设备,但不一定都能用,因为有些没有文件系统)
df -TH ##系统正在挂载的磁盘设备
blkid ##系统可以挂载的磁盘设备id(不一定能挂载)
后两个看到的一定可以用
3.分区划分
fidsk /dev/vdb
[[email protected] ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m ##获得帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types ##列出系统可用分区类型
m print this menu
n add a new partition ##新建分区
o create a new empty DOS partition table
p print the partition table ##显示分区
q quit without saving changes ##退出
s create a new empty Sun disklabel
t change a partition’s system id ##修改分区功能id
u change display/entry units
v verify the partition table
w write table to disk and exit ##保存更改到分区表中
x extra functionality (experts only)
Command (m for help): n ##新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free) ##分区类型为主分区
e extended ##分区类型为扩展分区
Select (default p): p
Partition number (2-4, default 2): 2 ##主分区id
First sector (206848-20971519, default 206848): ##此分区的起始位置
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-20971519, default 20971519): +200M ##分区大小
Partition 2 of type Linux and of size 200 MiB is set
Command (m for help): wq ##保存并退出,只输入q则表示放弃更改退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
cat /proc/partitions ##查看分区
partprobe ##同步分区表
mkfs.xfs /dev/vdb1 ##格式化
mount /dev/vdb1 /mnt ##临时挂载
vim /etc/fstab ##永久挂载
编写格式:
device mountpoint ftype defaults(mountpoint) 0 0
/dev/vdb1 /mnt xfs defaults 0 0
mount -a ##使/etc/fastab中记录的挂载生效
4.删除分区
先使用umount命令解除挂载
umount /mnt
如果显示进程正忙,不能删除
fuser -vm /mnt ##查看正在使用mnt文件的进程
fuser -kvm /mnt ##直接停止进程
然后就可以umount /mnt
注:当挂载点被使用时,无法解除挂载,需要用fuser -kvm结束使用的进程,然后进行解除挂载
解除挂载之后,使用fdisk /dev/vdb命令 删除分区
cat /proc/partitions 查看分区
另外如果时永久挂载,得先删除vim /etc/fstab/ 里面的设置,恢复成原样
5.设定分区方式,将mkdocs 改为 gpt
更改之前需要把正在使用的分区关闭,才可以进行更改
partoff /dev/vdb2
parted /dev/vdb
6.添加swap分区
fdisk /dev/vdb ##添加一个分区
partprobe ##同步分区表
mkswap /dev/vdb2 ##格式化成swap类型
swapon -a /dev/vdb2 ##加入swap
swapon -s
7.更改gpt下的swap 为mkdos下的swap
8.用文件来添加swap
dd if=/dev/zero of=/swapfile bs=1M count=1000 ##创建一个1G大小的文件
mkswap /swapfile ##格式化为swap类型
swapon -a /swapfile ##临时添加到swap里
-p + 数字 ##更改优先级
vim /etc/fstab ##永久添加swap分区
类型:
/swapfile swap swap defaults,pri=1 0 0 #pri优先级
9.删除swap
vim /etc/fstab ##删除此文件中添加的swap行
swapoff /swapfile ##断开swap文件链接
swapoff /dev/vdb1 ##断开swap磁盘链接
rm -rf /swapfile ##删除文件
fdisk /dev/vdb ##删除磁盘分区
partprobe ##同步分区表