Day 23 定時任務
第1章 特殊權限
1.1 Suid
1.1.1 作用:運行某一命令的時候相當於這個命令的所有者root
1.1.2 S -rwsr-xr-x
1.1.3 設置方法 chmod u+s /bin/rm 或chmod 4755 /bin/rm
1.2 sticky粘滯位 1777 /tmp目錄
1.2.1 任何人都可以在這個目錄裏面創建文件(原來的權限是777)
1.2.2 每個人只能管理自己的文件,其他人管理不了
[root@oldboyedu50-lnb ~]# ls -ld /bin/ls /usr/bin/passwd /tmp/ /usr/bin/locate
-rwxr-xr-x. 1 root root 117048 Mar 23 2017 /bin/ls 查看目錄權限
drwxrwxrwt. 3 root root 4096 Jul 25 16:27 /tmp/
-rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd #SUID
[root@oldboyedu50-lnb ~]# ll /bin/ls /bin/touch 查看權限不加特殊權限
-rwxr-xr-x. 1 root root 117048 Mar 23 2017 /bin/ls
-rwxr-xr-x. 1 root root 52560 Mar 23 2017 /bin/touch
[root@oldboyedu50-lnb ~]# chmod u+s /bin/ls /bin/touch 加特殊權限
[root@oldboyedu50-lnb ~]# ll /bin/ls /bin/touch
-rwsr-xr-x. 1 root root 117048 Mar 23 2017 /bin/ls
-rwsr-xr-x. 1 root root 52560 Mar 23 2017 /bin/touch
[root@oldboyedu50-lnb ~]# chmod u+s /bin/ls
[root@oldboyedu50-lnb ~]# ll /bin/ls
-rwsr-xr-x. 1 root root 117048 Mar 23 2017 /bin/ls
[root@oldboyedu50-lnb ~]# stat /bin/ls 查看權限
File: `/bin/ls'
Size: 117048 Blocks: 232 IO Block: 4096 regular file
Device: 803h/2051d Inode: 263579 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-08-06 09:13:37.131651698 +0800
Modify: 2017-03-23 02:52:45.000000000 +0800
Change: 2018-07-25 16:37:29.016952182 +0800
第2章 定時任務
2.1 分類
2.2 atd 運行一次(指定時間)
2.3 crond (crontab)7*24小時運行 定時任務軟件(軟件包cronie)(系統定時任務/用戶定時任務)
2.4 anacron 非7*24小時運行的服務器
2.5 系統定時任務
2.6 用戶定時任務
crontab -l === cat /var/spool/cron/root 查看用戶定時任務
crontab -e === vi /var/spool/cron/root 編輯用戶定時任務
crontab語法檢查功能(定時任務格式)
/var/spool/cron/root root用戶定時任務
2.7 檢查定時任務是否運行? crond
2.7.1 是否正在運行
ps -ef |grep crond
#process
[root@oldboyedu50-lnb ~]# ps -ef |grep crond
root 1781 1 0 16:23 ? 00:00:00 crond
root 2247 1842 0 17:51 pts/1 00:00:00 grep crond
2.7.2 是否開機自啓動
chkconfig|grep crond
2.8 定時任務配置文件格式
分時日月周
2.8.1 例題
1.每天的上午8點30分,來學校上車(go to school)
30 08 * * * go to school
2.每天晚上12點準時,回家自己開車(go to bed)
00 00 * * * go to bed
2.9 定時任務書寫流程
#1.命令
[root@oldboyedu50-lnb ~]# echo oldboy >>/tmp/name.log
[root@oldboyedu50-lnb ~]# cat /tmp/name.log
oldboy
#2.書寫定時任務
[root@oldboyedu50-lnb ~]# crontab -l
#print name oldboy at 2018xxxxx
* * * * * echo oldboy >>/tmp/name.log
#3.檢查
##1.檢查文件內容
##2.檢查日誌
[root@oldboyedu50-lnb ~]# cat /tmp/name.log
oldboy
oldboy
##1.命令
[root@oldboyedu50-lnb ~]# ntpdate ntp1.aliyun.com
8 Aug 11:37:51 ntpdate[2459]: step time server 120.25.115.20 offset 1181696.507577 sec
[root@oldboyedu50-lnb ~]# which ntpdate
/usr/sbin/ntpdate
[root@oldboyedu50-lnb ~]# /usr/sbin/ntpdate ntp1.aliyun.com
8 Aug 11:38:22 ntpdate[2466]: adjust time server 120.25.115.20 offset 0.003507 sec
##2.寫入定時任務
[root@oldboyedu50-lnb ~]# crontab -l
##print name oldboy at 2018xxxxx
#* * * * * echo oldboy >>/tmp/name.log
#sync time oldboy at 2018xxxxx
*/2 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
##3.檢查
修改系統時間
查看定時任務日誌
Aug 8 11:46:02 oldboyedu50-lnb CROND[2507]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
Aug 8 11:48:01 oldboyedu50-lnb CROND[2512]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
Aug 8 11:50:01 oldboyedu50-lnb CROND[2522]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
2.9.1 例題
每天的上午7點到上午11點 每2小時運行CMD命令
00 07-11/2 * * * CMD
00 07,09,11 * * * CMD
第3章 腳本
[root@oldboyedu50-lnb ~]# mkdir -p /server/scripts 創建環境
[root@oldboyedu50-lnb /server/scripts]# cat show.sh 查看腳本內容
date +%F_%T
[root@oldboyedu50-lnb /server/scripts]# sh /server/scripts/show.sh 運行腳本
2018-08-08_12:25:57