第1章 軟體查詢 1.1 查詢軟體是否安裝 rpm -qa |grep cron 查詢是否安裝了這個軟體. [root@znix ~]# rpm -qa |grep cron crontabs-1.10-33.el6.noarch cronie-1.4.4-16.el6_8.2.x86_64 cro ...
第1章 軟體查詢
1.1 查詢軟體是否安裝
rpm -qa |grep cron 查詢是否安裝了這個軟體.
[root@znix ~]# rpm -qa |grep cron
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_64
[root@znix ~]#
1.2 查看查詢是否正在運行
[root@znix ~]# ps -ef |grep crond
root 1570 1 0 Sep02 ? 00:00:00 crond
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 oldboy -l
#oldboy
[root@znix ~]# ll /var/spool/cron/
total 8
-rw------- 1 root root 8 Sep 7 10:23 oldboy
-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 (oldboy)
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 每分鐘把自己的名字 追加到 /oldboy/oldboy.txt
* * * * * /bin/echo clsn >> /oldboy/oldboy.txt
使用tail命令查看命令的執行情況,可以看到文件的內容.
[root@znix ~]# tail -f /oldboy/oldboy.txt
clsn
clsn
clsn
查看日誌,查看命令執行的時間.
[root@znix ~]# tail -3 /var/log/cron
Sep 7 12:05:01 znix CROND[15674]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)
Sep 7 12:06:01 znix CROND[15678]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)
Sep 7 12:07:01 znix CROND[15681]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)
2.8 註意
錯誤:
* * * * * /bin/echo "oldboy" >>/oldboy/oldboy.txt >/dev/null 2>&1
實例2-2 二者不可同時使用.
定時任務中 命令/腳本定向到空
/dev/null 2>&1
定時任務中 命令/腳本追加到文件中
/oldboy/oldboy.txt 2>&1