Linux中包管理與定時任務

第1章 軟件查詢

1.1 查詢軟件是否安裝

rpm -qa |grep cron 查詢是否安裝了這個軟件.linux

[root@znix ~]# rpm -qa |grep cronbash

crontabs-1.10-33.el6.noarch服務器

cronie-1.4.4-16.el6_8.2.x86_64網絡

cronie-anacron-1.4.4-16.el6_8.2.x86_64less

[root@znix ~]#dom

1.2 查看查詢是否正在運行

[root@znix ~]# ps -ef |grep crondssh

root       1570      1  0 Sep02 ?        00:00:00 crondpost

root      14941  14780  0 09:08 pts/0    00:00:00 grep --color=auto crond性能

1.3 安裝crond的方法

1.3.1 crond屬於哪裏

crond,不能單獨安裝,是軟件包裏所帶的功能。測試

yum安裝的時候須要須要安裝,

[root@znix ~]# yum install crond

Loaded plugins: fastestmirror, security

Setting up Install Process

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * extras: mirrors.btte.net

 * updates: mirrors.sohu.com

base                                       | 3.7 kB     00:00    

extras                                     | 3.4 kB     00:00    

updates                                    | 3.4 kB     00:00    

No package crond available.

Error: Nothing to do

1.3.2 查詢軟件所屬軟件包

[root@znix ~]# rpm -qf  `which crond`

cronie-1.4.4-16.el6_8.2.x86_64

1.3.3 如何查看軟件包裏的內容

rpm -ql  顯示軟件包裏的信息。名字必須一致.

[root@znix ~]# rpm -ql cronie

/etc/cron.d

/etc/cron.d/0hourly

/etc/cron.deny

/etc/pam.d/crond

/etc/rc.d/init.d/crond

/etc/sysconfig/crond

/usr/bin/crontab

/usr/sbin/crond

/usr/share/doc/cronie-1.4.4

/usr/share/doc/cronie-1.4.4/AUTHORS

/usr/share/doc/cronie-1.4.4/COPYING

/usr/share/doc/cronie-1.4.4/ChangeLog

/usr/share/doc/cronie-1.4.4/INSTALL

/usr/share/doc/cronie-1.4.4/README

/usr/share/man/man1/crontab.1.gz

/usr/share/man/man5/crontab.5.gz

/usr/share/man/man8/cron.8.gz

/usr/share/man/man8/crond.8.gz

/var/spool/cron

1.3.4 如何查看一個安裝的軟件

rpm  如何查詢軟件包的內容

yum 安裝不上的,多是軟件包的一部分

查看 crond 屬於哪一個軟件包,查詢時要使用絕對路徑

1.4 查詢ifconfig 屬於哪一個軟件包

[root@znix ~]#

[root@znix ~]# rpm -qf `which ifconfig`

net-tools-1.60-114.el6.x86_64

[root@znix ~]# rpm -ql net-tools

/bin/dnsdomainname

/bin/domainname

第2章 定時任務

2.1 什麼是定時任務

每隔相同的時間,相同的事情(執行命令或腳本)

2.2 系統中的定時任務

[root@znix ~]# ls -ld /etc/cron*

drwxr-xr-x. 2 root root 4096 Aug 10 18:37 /etc/cron.d

drwxr-xr-x. 2 root root 4096 Aug 10 18:38 /etc/cron.daily 

-rw-------. 1 root root    0 Aug 24  2016 /etc/cron.deny

drwxr-xr-x. 2 root root 4096 Aug 10 18:36 /etc/cron.hourly

drwxr-xr-x. 2 root root 4096 Aug 10 18:37 /etc/cron.monthly

-rw-r--r--. 1 root root  457 Sep 27  2011 /etc/crontab

drwxr-xr-x. 2 root root 4096 Sep 27  2011 /etc/cron.weekly

/etc/cron.deny 禁止用戶使用定時任務 ,把用戶名放到裏面

2.2.1 日誌切割-日誌的輪詢

每隔一段時間,將日誌進行分割

[root@znix ~]# ls /var/log/messages*

/var/log/messages           /var/log/messages-20170828

/var/log/messages-20170814  /var/log/messages-20170904

/var/log/messages-20170821

2.2.2 日誌的輪詢的定時任務

[root@znix cron.daily]# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

    sharedscripts

    postrotate

    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}

2.3 用戶定時任務crontab

2.3.1 crontab 使用

-e  編輯

-l  查看

-u  設置指定用戶的定時任務

[root@znix cron.daily]# crontab --help

crontab: invalid option -- '-'

crontab: usage error: unrecognized option

usage:  crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

        (default operation is replace, per 1003.2)

        (edit user's crontab)

        (list user's crontab)

    -r  (delete user's crontab)

    -i  (prompt before deleting user's crontab)

    -s  (selinux context)

2.3.2 指定用戶的定時任務

-u 指定用戶

[root@znix ~]# crontab -u clsn -l

#clsn

[root@znix ~]# ll /var/spool/cron/

total 8

-rw------- 1 root root  8 Sep  7 10:23 clsn

-rw------- 1 root root 77 Sep  4 20:43 root

2.4 定時任務的使用-

2.4.1 看定時任務的軟件的是否能用

[root@znix ~]# ps -ef |grep cron

root       1570      1  0 Sep02 ?        00:00:00 crond

[root@znix ~]# service crond status

crond (pid  1570) is running...

[root@znix ~]# /etc/init.d/crond status

crond (pid  1570) is running...

2.4.2 看定時任務是否開機自啓動

[root@znix ~]# chkconfig |grep cron

crond          0:off   1:off   2:on    3:on    4:on    5:on    6:off

2.4.3 linux裏的守護進程 (服務)

[root@znix ~]# chkconfig |egrep "crond|network|rsyslog|sshd|sysstat"

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off   定時任務

network        0:off   1:off   2:on    3:on    4:on    5:on    6:off   網絡服務

rsyslog        0:off   1:off   2:on    3:on    4:on    5:on    6:off   系統日誌

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off   遠程連接服務器

sysstat        0:off   1:on    2:on    3:on    4:on    5:on    6:off   監測系統性能及效率

2.5 與定時任務相關的文件

2.5.1 定時任務的日誌

[root@znix ~]# tail -2 /var/log/cron

Sep  7 10:23:42 znix crontab[15409]: (root) LIST (clsn)

Sep  7 10:25:01 znix CROND[15412]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)

2.5.2 定時任務所在目錄

[root@znix ~]# ls /var/spool/cron

2.5.3 禁止那些用戶使用定時任務

[root@znix ~]# cat /etc/cron.deny

2.6 linux中查看的命令日誌

對與較大的文件,查看的時候,儘可能不要cat.經過其餘的命令,快速找到要找的內容.

grep /egrep

less

tail /tail -f

head

2.7 定時任務的基本格式

* * * * *  CMD

分時日月周 CMD

其中 * 表示每

/n 每隔多長時間

2.7.1 定時任務中的時間

[root@znix ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# For details see man 4 crontabs

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

2.7.2 定時任務--5分鐘同步一下系統時間

1.用什麼命令,首先將命令測試一下,沒有錯誤後,再寫入定時任務.

[root@znix ~]# ntpdate ntp1.aliyun.com

 7 Sep 10:52:57 ntpdate[15460]: adjust time server 182.92.12.11 offset 0.479762 sec

2.寫定時任務--寫定時任務要使用絕對路徑, 在後面加上2>&1,表示正確的,錯誤的都輸出到同一個文件中.

[root@znix ~]# crontab -e

###time tongbu

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

3.檢查結果,能夠看日誌,也可看命令的執行結果.

[root@znix ~]# tail -1 /var/log/cron

Sep  7 10:55:01 znix CROND[15466]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)

實例2-1 每分鐘把本身的名字 追加到 /clsn/clsn.txt

* * * * * /bin/echo clsn >> /clsn/clsn.txt

       使用tail命令查看命令的執行狀況,能夠看到文件的內容.

[root@znix ~]# tail -f /clsn/clsn.txt

clsn

clsn

clsn

       查看日誌,查看命令執行的時間.

[root@znix ~]# tail -3 /var/log/cron

Sep  7 12:05:01 znix CROND[15674]: (root) CMD (/bin/echo clsn >> /clsn/clsn.txt 2>&1)

Sep  7 12:06:01 znix CROND[15678]: (root) CMD (/bin/echo clsn >> /clsn/clsn.txt 2>&1)

Sep  7 12:07:01 znix CROND[15681]: (root) CMD (/bin/echo clsn >> /clsn/clsn.txt 2>&1)

2.8 注意

錯誤:

* * * * *      /bin/echo "clsn" >>/clsn/clsn.txt >/dev/null 2>&1

實例2-2 兩者不可同時使用.

定時任務中 命令/腳本定向到空

 /dev/null 2>&1

定時任務中 命令/腳本追加到文件中

 /clsn/clsn.txt 2>&1

相關文章
相關標籤/搜索