Linux学习笔记(十七)

磁盘配额(Quota)与进阶文件系统管理 

1 磁盘配额的一般用途

针对WWW服务器,如每个人的网页空间的容量限制。

针对邮件服务器,如每个人的邮件空间容量。

针对文件服务器,如每个人最大的可用网络硬盘空间。

在Linux中,用来进行硬盘空间管理的就是磁盘配额。

2 磁盘配额的使用限制

仅针对整个分区

核心必须支持磁盘配额

磁盘配额的记录文件(aquota.user,aquota.group)

只对一般身份用户有效(root就不能设置磁盘配额,因为它拥有整个系统的所有数据)

3 磁盘配额程序对硬盘配额的限制

磁盘配额程序对整个分区的限制主要分为以下几个部分:

最低限制(soft):最低限制容量。

最高限制(hard):这是绝对不能超过的容量。

宽限时间:当用户使用的空间超过最低限制但还没有到最高限制,在这个宽限是时间内必须要把使用磁盘的容量降低到最低限制之下。

一个 Quota 实作范例 

坐而言不如起而行啊,所以这里我们使用一个范例来设计一下如何处理 Quota 的设定流程。 

目的与账号:现在我想要让我的专题生五个为一组,这五个人的账号分别是 myquota1, myquota2, myquota3, myquota4, myquota5,这五个用户的密码都是 password ,且这五个用户所属的初始群组都是 myquotagrp 。 其他的账号属性则使用默认值。 

账号的磁盘容量限制值:我想让这五个用户都能够取得 300MBytes 的磁盘使用量(hard),档案数量则不予限制。 此外,只要容量使用率超过 250MBytes ,就予以警告 (soft)。 

群组的限额:由于我的系统里面还有其他用户存在,因此我仅承认 myquotagrp 这个群组最多仅能使用 1GBytes 的容量。 这也就是说,如果 myquota1, myquota2, myquota3 都用了280MBytes 的容量了,那么其他两人最多只能使用 (1000MB - 280x3 = 160MB) 的磁盘容量啰!这就是使用者与群组同时设定时会产生的后果。 

宽限时间的限制:最后,我希望每个使用者在超过 soft 限制值之后,都还能够有 14 天的宽限时间。好了,那你怎么规范账号以及相关的 Quota 设定呢?首先,在这个小节我们先来将账号相关的属性与参数搞定再说吧!

制作账号环境时,由于有五个账号,因此鸟哥使用 script 来建立环境! 

[root@www ~]# vi addaccount.sh 

#!/bin/bash 

使用 script 来建立实验 quota 所需的环境 

groupadd myquotagrp 

for username in myquota1 myquota2 myquota3 myquota4 myquota5 

do 

  useradd -g myquotagrp $username 

  echo "password" | passwd --stdin $username 

done 

 

[root@www ~]# sh addaccount.sh 

[root@www ~]# df -h /home 

Filesystem     Size  Used Avail Use% Mounted on 

/dev/hda3      4.8G  740M  3.8G  17% /home  <==鸟哥主机的 /home 确实是独立的! 

[root@www ~]# mount | grep home 

/dev/hda3 on /home type ext3 (rw)  

手动挂载的数据在下次重新挂载就会消失,因此最好写入配置文件中啊!在鸟哥这部主机的案例中, 我可以直接修改 /etc/fstab 成为底下这个样子: 

[root@www ~]# vi /etc/fstab 

LABEL=/home   /home  ext3   defaults,usrquota,grpquota  1 2 

其他项目鸟哥并没有列出来!重点在于第四字段!于default 后面加上两个参数!  

[root@www ~]# umount /home 

[root@www ~]# mount -a 

[root@www ~]# mount | grep home 

/dev/hda3 on /home type ext3 (rw,usrquota,grpquota) 

还是要再次的强调,修改完 /etc/fstab 后,务必要测试一下!若有发生错诨得要赶紧处理!

quotacheck :扫瞄文件系统并建立 Quota 的记录文件 

[root@www ~]# quotacheck [-avugfM] [/mount_point] 

选项与参数: 

-a  :扫瞄所有在 /etc/mtab 内,含有 quota 支持的 filesystem,加上此参数后,/mount_point 可不必写,因为扫瞄所有的 filesystem 了嘛! 

-u  :针对用户扫瞄档案与目录的使用情况,会建立 aquota.user 

-g  :针对群组扫瞄档案与目录的使用情况,会建立 aquota.group 

-v  :显示扫瞄过程的信息; 

-f  :强制扫瞄文件系统,并写入新的 quota 配置文件 (危险

-M  :强制以读写的方式扫瞄文件系统,只有在特殊情况下才会使用。 

quotacheck 的选项你只要记得『 -avug 』一起下达即可!那个 -f 与 -M 是在文件系统可能已经启动quota 了, 但是你还想要重新扫瞄文件系统时,系统会要求你加入那两个选项啦 (担心有其他人已经使用 quota )!平时没必要不要加上那两个项目。好了,那就让我们来处理我们的任务吧! 

针对整个系统含有 usrquota, grpquota 参数的文件系统进行 quotacheck 扫瞄 

[root@www ~]# quotacheck -avug 

quotacheck: Scanning /dev/hda3 [/home] quotacheck: Cannot stat old 

user quota 

file: No such file or directory <==有找到文件系统,但尚未制作记录文件! 

quotacheck: Cannot stat old group quota file: No such file or directory 

quotacheck: Cannot stat old user quota file: No such file or directory 

quotacheck: Cannot stat old group quota file: No such file or directory 

done  <==上面三个错误只是说明记录文件尚未建立而已,可以忽略不理! 

quotacheck: Checked 130 directories and 107 files <==实际搜寻结果 

quotacheck: Old file not found. 

quotacheck: Old file not found. 

若执行这个指令却出现如下的错误讯息,表示你没有任何文件系统有启动 quota 支持! 

# quotacheck: Can't find filesystem to check or filesystem not mounted 

with  

# quota option. 

[root@www ~]# ll -d /home/a* 

-rw------- 1 root root 8192 Mar  6 11:58 /home/aquota.group 

-rw------- 1 root root 9216 Mar  6 11:58 /home/aquota.user 

在鸟哥的案例中,/home 独立的文件系统,因此搜寻结果会将两个记录文件放在  

# /home 底下。这两个档案就是 Quota 最重要的信息了!

Quota 启动、 关闭与限制值设定 

制作好 Quota 配置文件之后,接下来就是要启动 quota 了!启动的方式很简单!使用 quotaon ,至于关闭就用 quotaoff 即可 

quotaon :启动 quota 的服务 

[root@www ~]# quotaon [-avug] 

[root@www ~]# quotaon [-vug] [/mount_point] 

选项与参数: 

-u  :针对使用者启动 quota (aquota.user) 

-g  :针对群组启动 quota (aquota.group) 

-v  :显示启动过程的相关讯息; 

-a  :根据 /etc/mtab 内的 filesystem 设定启动有关的 quota ,若不加 -a 的话,则后面就需要加上特定的那个 filesystem 喔! 

由于我们要启动 user/group 的 quota ,所以使用底下的语法即可 

[root@www ~]# quotaon -auvg 

/dev/hda3 [/home]: group quotas turned on 

/dev/hda3 [/home]: user quotas turned on 

特殊用法,假如你的启动 /var 的 quota 支持,那么仅启动 user quota 时 

[root@www ~]# quotaon -uv /var  

quotaoff :关闭 quota 的服务 

[root@www ~]# quotaoff [-a] 

[root@www ~]# quotaoff [-ug] [/mount_point] 

选项与参数: 

-a  :全部的 filesystem 的 quota 都关闭 (根据 /etc/mtab) 

-u  :仅针对后面接的那个 /mount_point 关闭 user quota 

-g  :仅针对后面接的那个 /mount_point 关闭 group quota 

edquota :编辑账号/群组的限值与宽限时间 

edquota 是 edit quota 的缩写,所以就是用来编辑使用者或者是群组限额的指令啰。我们先来看看edquota 的语法吧, 看完后再来实际操作一下。 

[root@www ~]# edquota [-u username] [-g groupname] 

[root@www ~]# edquota -t  <==修改宽限时间 

[root@www ~]# edquota -p 范本账号 -u 新账号 

选项与参数: 

-u  :后面接账号名称。可以进入 quota 的编辑画面 (vi) 去设定 username 的限制值; 

-g  :后面接组名。可以进入 quota 的编辑画面 (vi) 去设定 groupname 的限制值; 

-t  :可以修改宽限时间。 

-p  :复制范本。那个 模板账号 为已经存在并且已设定好 quota 的使用者, 意义为『将 范本账号 这个人的 quota 限制值复制给 新账号 』! 

好了,先让我们来看看当进入 myquota1 的限额设定时,会出现什么画面: 

范例一:设定 dmtsai 这个使用者的 quota 限制值 

[root@www ~]# edquota -u myquota1 

Disk quotas for user myquota1 (uid 710): 

  Filesystem    blocks  soft   hard  inodes  soft  hard 

  /dev/hda3         80     0      0      10     0     0 

上头第一行在说明针对哪个账号 (myquota1) 进行 quota 的限额设定,第二行则是标头行,里面共分为七个字段, 七个字段分别的意义为: 

1.  文件系统 (filesystem):说明该限制值是针对哪个文件系统 (或 partition); 

2.  磁盘容量 (blocks):这个数值是 quota 自己算出来的,单位为 Kbytes,请不要更改他; 

3.  soft:磁盘容量 (block) 的 soft 限制值,单位亦为 KB 

4.  hardblock 的 hard 限制值,单位 KB; 

5.  档案数量 (inodes):这是 quota 自己算出来的,单位为个数,请不要更改他; 

6.  softinode 的 soft 限制值; 

7.  hardinode 的 hard 限制值; 

因此上述的画面我们将他改成如下的模样: 

Disk quotas for user myquota1 (uid 710): 

  Filesystem    blocks    soft    hard  inodes  soft  hard 

  /dev/hda3         80  250000  300000      10     0     0 

设定完成之后,还有其他5个用户要设定,由于设定值都一样,此时可以使用quota复制喔! 

将 myquota1 的限制值复制给其他四个账号 

[root@www ~]# edquota -p myquota1 -u myquota2 

[root@www ~]# edquota -p myquota1 -u myquota3 

[root@www ~]# edquota -p myquota1 -u myquota4 

[root@www ~]# edquota -p myquota1 -u myquota5 

这样就方便多了!然后,赶紧更改一下群组的 quota 限额吧! 

[root@www ~]# edquota -g myquotagrp 

Disk quotas for group myquotagrp (gid 713): 

  Filesystem    blocks    soft     hard  inodes  soft  hard 

  /dev/hda3        400  900000  1000000      50     0     0 

记得,单位为 KB 喔!最后,将宽限时间给他改成 14 天吧! 

宽限时间原本为 天,将他改成 14 天吧! 

[root@www ~]# edquota -t 

Grace period before enforcing soft limits for users: 

Time units may be: days, hours, minutes, or seconds 

  Filesystem         Block grace period     Inode grace period 

  /dev/hda3                14days                  7days 

原本是 7days ,我们将他给改为 14days 喔! 

 

Quota 限制值的报表 

quota 的报表主要有两种模式,一种是针对每个个人或群组的 quota 指令,一个是针对整个文件系统的 repquota 指令。 我们先从较简单的 quota 来介绍!你也可以顺道看看你的设定值对不对啊! 

quota :单一用户的 quota 报表 

[root@www ~]# quota [-uvs] [username] 

[root@www ~]# quota [-gvs] [groupname] 

选项与参数: 

-u  :后面可以接 username ,表示显示出该用户的 quota 限制值。若不接 username ,表示显示出执行者的 quota 限制值。 

-g  :后面可接 groupname ,表示显示出该群组的 quota 限制值。 

-v  :显示每个用户在 filesystem 的 quota 值; 

-s  :使用 1024 为倍数来指定单位,会显示如 之类的单位! 

直接使用 quota 去显示出 myquota1 与 myquota2 的限额 

[root@www ~]# quota -uvs myquota1 myquota2 

Disk quotas for user myquota1 (uid 710): 

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace 

    /dev/hda3      80   245M   293M              10       0       0 

Disk quotas for user myquota2 (uid 711): 

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace 

    /dev/hda3      80   245M   293M              10       0       0 

这个指显示出来的数据跟 edquota 几乎是一模一样的,只是多了个 grace项目。 

你会发现 grace 底下没有任何数据,这是因为我们的使用量 (80) 尚未超过 soft 

显示出 myquotagrp 的群组限额 

[root@www ~]# quota -gvs myquotagrp 

Disk quotas for group myquotagrp (gid 713): 

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace 

/dev/hda3     400   879M   977M              50       0       0 

repquota :针对文件系统的限额做报表 

[root@www ~]# repquota -a [-vugs] 

选项与参数: 

-a  :直接到 /etc/mtab 搜寻具有quota标志的filesystem ,并报告quota的结果; 

-v  :输出的数据将含有 filesystem 相关的细部信息; 

-u  :显示出用户的 quota 限值 (这是默认值); 

-g  :显示出个别群组的 quota 限值。 

-s  :使用 M, G 为单位显示结果 

查询本案例中所有使用者的 quota 限制情况: 

[root@www ~]# repquota -auvs 

*** Report for user quotas on device /dev/hda3    <==针对 /dev/hda3 

Block grace time: 14days; Inode grace time: 7days <==block 宽限时间为 14 天 

                        Block limits                File limits 

User            used    soft    hard  grace    used  soft  hard  grace 

---------------------------------------------------------------------- 

root      --    651M       0       0              5     0     0 

myquota1  --      80    245M    293M             10     0     0 

myquota2  --      80    245M    293M             10     0     0 

myquota3  --      80    245M    293M             10     0     0 

myquota4  --      80    245M    293M             10     0     0 

myquota5  --      80    245M    293M             10     0     0  

Statistics:  <==这是所谓的系统相关信息,用 -v 才会显示 

Total blocks: 9 

Data blocks: 2 

Entries: 22 

Used average: 11.000000 

warnquota :对超过限额者发出警告信 

warnquota字面上的意义就是 quota 的警告 (warn) 嘛!那么这东西有什么用呢?他可以依据/etc/warnquota.conf 的设定,然后找出目前系统上面 quota 用量超过 soft (就是有 grace time 出现的那些家伙的账号,透过 email 的功能将警告信件发送到用户的电子邮件信箱。 warnquota 并不会自动执行,所以我们需要手动去执行他。单纯执行『 warnquota 』之后,他会发送两封信出去, 一封给 myquota1 一封给 root ! 

[root@www ~]# warnquota 

完全不会出现任何讯息!没有讯息就是『好讯息』! ^_^ 

[root@www ~]# mail 

 N329 root@www.vbird.tsai   Fri Mar  6 16:10  27/1007  "NOTE: .... 

& 329   <==因为新信件在第 329 封之故 

From root@www.vbird.tsai  Fri Mar  6 16:10:18 2009 

Date: Fri, 6 Mar 2009 16:10:17 +0800 

From: root <root@www.vbird.tsai> 

Reply-To: root@myhost.com 

Subject: NOTE: You are exceeding your allocated disk space limits 

To: myquota1@www.vbird.tsai 

Cc: root@www.vbird.tsai   <==注意这三行,分别是标题、收件者与副本 (CC)。 

 

Your disk usage has exceeded the agreed limits on this server <==问题说明 

Please delete any unnecessary files on following filesystems: 

/dev/hda3  <==底下这几行为发生磁盘『爆表』的信息啦! 

                        Block limits               File limits 

Filesystem           used    soft    hard  grace    used  soft  hard  grace 

/dev/hda3      +-  300000  250000  300000 13days      12     0     0 

 

root@localhost  <==这个是警告讯息发送者的『签名资料』啦! 

& exit  <==离开 mail 程序! 

不过这个方法并不适用在 /var/spool/mail 也爆表的 quota 控管中,因为如果使用者在这个 filesystem的容量已经爆表,那么新的信件当然就收不下来啦!那么我们怎么让系统自动的执行warnquota 呢? 你可以这样做: 

[root@www ~]# vi /etc/cron.daily/warnquota 

/usr/sbin/warnquota 

你没有看错!只要这一行,且将执行文件以绝对路径的方式写入即可! 

[root@www ~]# chmod 755 /etc/cron.daily/warnquota   

setquota :直接于指令中设定 quota 限额 

如果你想要使用 script 的方法来建立大量的账号,并且所有的账号都在建立时就给予 quota ,那该如何是好? 其实有两个方法可以考虑: 

·  先建立一个原始 quota 账号,再以『 edquota -p old -u new 』写入 script 中; 

·  直接以 setquota 建立用户的 quota 设定值。 

不同于 edquota 是呼叫 vi 来进行设定,setquota 直接由指令输入所必项要的各项限制值。 他的语法有点像这样:  

[root@www ~]# setquota [-u|-g] 名称 block(soft) block(hard) \ 

>  inode(soft) inode(hard) 文件系统 

观察原始的 myquota5 限值,并给予 soft/hard 分别为 100000/200000 

[root@www ~]# quota -uv myquota5 

Disk quotas for user myquota5 (uid 714):  

   Filesystem blocks  quota  limit  grace files  quota  limit  grace 

    /dev/hda3     80 250000 300000           10      0      0 

[root@www ~]# setquota -u myquota5 100000 200000 0 0 /home 

[root@www ~]# quota -uv myquota5 

Disk quotas for user myquota5 (uid 714):  

   Filesystem blocks  quota  limit  grace files  quota  limit  grace 

    /dev/hda3     80 100000 200000           10      0      0 

看吧!真的有改变过来!这就是 quota 的简单脚本设定语法! 

不更动既有系统的 quota 实例 

既然 quota 是针对整个 filesystem 来进行限制,假设你又已经有 /home 这个独立的分割槽了, 那么你只要: 

1.  将 /var/spool/mail 这个目录完整的移动到 /home 底下; 

2.  利用 ln -s /home/mail /var/spool/mail 来建立链接数据; 

3.  将 /home 进行 quota 限额设定 

只要这样的一个小步骤,嘿嘿!您家主机的邮件就有一定的限额啰!您也可以依据不同的使用者与群组来设定 quota 然后同样的以上面的方式来进行 link 的动作,就有不同的限额针对不同的使用者提出啰! ^_^ 

 

例行性工作排程(crontab

什么是例行性命令

例行性的工作:每年一次的加薪,每月一次的工作报告,每天都需要打卡等。

临时性的工作:刚好要接个电话,大蒜涨价等。

Linux工作任务分配的种类:at、cron

有两种工作任务分配方式:

一种是例行性的,就是每隔一定的周期要办的事项。

一种是突发性的,就是这次做完以后就没有的那一种。

使用at 与 cron

at:工作仅执行一次就从Linux系统的任务分配中取消。

cron:工作将继续下去。

系统常见的例行性命令

Linux本身在后台的工作很多。基本上默认的工作有下面这些:

登录文件的数据轮换(log rotate)。因为登录文件会越来越大,需要适时地适量地备份登录文件,并用新的文件进行记录。这是系统默认的工作之一。

rpm数据库的建立:虽然RPM数据库会在您以RPM安装之后更新到RPM数据库中,但是不能确保会有遗漏,所以将系统设置为每隔一段是时间久自动收集和建立系统上的RPM数据库。

建立locate的数据库:locate命令的搜索速度非常快。使用这个命令的时候直指数据库(/var/lib/slocate/slocate.db),这个文件一天更新一次。

程序分析:每隔一段是时间分析一下程序看看有无僵尸程序,以便删除。

检测登录文件:分析登录文件,以维护主机的安全。

指纹数据库的比较:通常指tripwire套件,可以用来分析最近更改过的文件内容。

仅进行一次的工作任务分配:at

要分配这种工作任务是,Linux系统上必须要有负责任务分配的服务,就是atd。不过很多版本上都默认不打开它。启用它的方法:

命令行界面下敲:/etc/init.d/atd restart然后回车。

设置开机就启动 # chkconfig  --level 35 atd on

1 at的工作

任务分配,就要有写入工作的记录文件,用at命令来写入工作记录文件。工作记录默认放在/var/spool/at(这是一个目录)下面,写入这个工作记录后,这个工作便进入任务分配中并等待执行。当然要让/var/spool/at目录下面的工作运行,就需要用到atd服务。

为了安全的考虑,并不是所有的人都可以进行at任务的分配。可以利用/etc/at.allow与/etc/at.deny这个两个文件来限制at的使用。

有了这两个文件之后的at工作情况是这样的:

先去找/etc/at.allow文件,在这个文件里面的用户才能使用at,如果不在则不能使用,即便是没有再at.deny中。

如果没有at.allow就找at.deny这个文件,这个文件中的用户不能使用at,如果不在就可以用。

如果这两个文件都没有,则只有root能使用。

at.allow与at.deny只要有一个就可以了。

一个账号写一行即可。

2 开始使用at

at的语法:

[root@www ~]# at [-mldv] TIME

[root@www ~]# at -c 工作号码

选项与参数:

-m  :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。

-l  :at -l 相当于 atq,列出目前系统上面的所有该使用者的 at 排程;

-d  :at -d 相当于 atrm ,可以取消一个在 at 排程中的工作;

-v  :可以使用较明显的时间格式列出 at 排程中的工作列表;

-c  :可以列出后面接的该项工作的实际指令内容。

TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格式有:

  HH:MM                                     ex> 04:00

         在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。

  HH:MM YYYY-MM-DD                  ex> 04:00 2009-03-17

         强制规定在某年某月的某一天的特殊时刻进行该工作!

  HH:MM[am|pm] [Month] [Date]       ex> 04pm March 17

         也是一样,强制在某年某月某日的某时刻进行!

  HH:MM[am|pm] + number [minutes|hours|days|weeks]

         ex> now + 5 minutes    ex> 04pm + 3 days

         就是说,在某个时间点『再加几个时间后』才进行。

老实说,这个 at 指令的下达最重要的地方在于『时间』的指定了!喜欢使用『 now + ... 』 的方式来定义现在过多少时间再进行工作,但有时也需要定义特定的时间点来进行!

例子:

范例一:再过五分钟后,将 /root/.bashrc 寄给 root 自己

[root@www ~]# at now + 5 minutes  <==记得单位要加 s 喔!

at> /bin/mail root -s "testing at job" < /root/.bashrc

at> <EOT>   <==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束!

job 4 at 2009-03-14 15:38

# 上面这行信息在说明,第 4 个 at 工作将在 2009/03/14 的 15:38 进行!

# 而执行 at 会进入所谓的 at shell 环境,让你下达多重指令等待运作!

 

范例二:将上述的第 4 项工作内容列出来查阅

[root@www ~]# at -c 4

#!/bin/sh               <==就是透过 bash shell 的啦!

# atrun uid=0 gid=0

# mail     root 0

umask 22

....(中间省略许多的环境变量项目)....

cd /root || {           <==可以看出,会到下达 at 时的工作目录去执行指令

         echo 'Execution directory inaccessible' >&2

         exit 1

}

 

/bin/mail root -s "testing at job" < /root/.bashrc

# 你可以看到指令执行的目录 (/root),还有多个环境变量与实际的指令内容啦!

 

范例三:由于机房预计于 2009/03/18 停电,我想要在 2009/03/17 23:00 关机?

[root@www ~]# at 23:00 2009-03-17

at> /bin/sync

at> /bin/sync

at> /sbin/shutdown -h now

at> <EOT>

job 5 at 2009-03-17 23:00

# 您瞧瞧! at 还可以在一个工作内输入多个指令呢!不错吧!

事实上,当我们使用 at 时会进入一个 at shell 的环境来让使用者下达工作指令,此时,建议你最好使用绝对路径,不容易出问题。每个命令都可能有信息输出到屏幕上,但是利用at后的信息都会以电子邮件的方式发送到用户的邮箱里面去。可以使用参数”-m”强制传给自己一个电子邮箱信息。

at的优点是”后台执行”

at要进行工作任务分配,系统会将at工作独立出bash环境中,直接交给atd程序接管,当执行了at的工作之后,就可以立刻离线剩下的工作完全交给Linux管理即可,使用at还可以免除网络断线后的困扰。

“atq”命令可以查看当前主机上有多少at工作任务分配。

利用atrm jobsnumber可以删除工作号为“jobnumber”的工作。

batch:系统有空时才进行背景任务

其实 batch 是利用 at 来进行指令的下达啦!只是加入一些控制参数而已。这个 batch 神奇的地方在于:他会在 CPU 工作负载小于 0.8 的时候,才进行你所下达的工作任务啦! 那什么是负载 0.8 呢?这个负载的意思是: CPU 在单一时间点所负责的工作数量。

那么 batch 如何下达指令呢?很简单啊!与 at 相同啦!

循环执行的例行性命令

用户的设置:crontab

建立例行性命令时使用crontab命令。安全期间,可以限制使用这个命令的用户账号,建立两个文件/etc/cron.allow与/etc/cron.deny.前者要比后者优先,这两个文件夹只选择一个来限制保留一个就可以了。

使用cron命令建立工作任务分配后,该项工作就会被记录到/var/spool/cron中,而且是以账号来识别的。比如说cjw用户使用crontab后,他的工作会记录到/var/spool/cron/cjw里面。

Cron执行的每一项工作都会记录到/etc/log/cron这个登录文件中。

 crontab 的语法吧!

[root@www ~]# crontab [-u username] [-l|-e|-r]

选项与参数:

-u  :只有 root 才能进行这个任务,亦即帮其它使用者建立/移除 crontab 工作排程;

-e  :编辑 crontab 的工作内容

-l  :查阅 crontab 的工作内容

-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。

 

范例一:用 dmtsai 的身份在每天的 12:00 发信给自己

[dmtsai@www ~]$ crontab -e

# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。

0   12  *  *  * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc

#分 时 日 月 周 |<==============指令串========================>|

预设情况下,任何使用者只要不被列入 /etc/cron.deny 当中,那么他就可以直接下达『 crontab -e 』去编辑自己的例行性命令!

这六个字段的意义为:

比较有趣的是那个『周』!周的数字为 0 或 7 时,都代表『星期天』的意思!

一些特殊的字符有底下这些:

系统的设置 :/etc/crontab

上面的crontab –e是针对用户的cron来设计的。如果是“系统的例行性任务”,直接编译/etc/crontab这个文件就可以了。

注意:crontab –e中的crontab其实是/etc/bin/crontab执行文件,而/etc/crontab是一个“纯文本文件”。

为了保证crond服务会顺利进行,在修改完/etc/crontab之后重启crond服务 

/etc/init.d/crond restart

一些使用特性

资源分配不均的问题

流量

区域内其他PC的流量监测;

CPU使用率;

RAM使用率;

在线人数实时监测。

取消不要的输出项目

安全检验:可以通过检验/var/log/cron的内容来查看时否执行了“非您设置的cron”

周与日月不可同时并存 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值