sgid的作用見識(shí)讓普通作用之一:
sgid的作用就是讓普通用戶可以在執(zhí)行某個(gè)設(shè)置了sgid位的命令時(shí),
擁有和命令對(duì)應(yīng)用戶組(一般為root用戶組)一樣的身份和權(quán)限(默認(rèn))。
locate搜索內(nèi)容蝙寨,默認(rèn)從updatedb對(duì)應(yīng)的數(shù)據(jù)庫中查找
updatedb 更新locate查找內(nèi)容對(duì)應(yīng)的數(shù)據(jù)庫泄鹏。
[root@oldboyedu ~]# updatedb
[root@oldboyedu ~]#? ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root slocate 1977042 Oct? 8 00:47 /var/lib/mlocate/mlocate.db
[root@oldboyedu ~]# file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data
sgid基于目錄的作用:
讓不同的人創(chuàng)建文件屬于相同的用戶組饿这,從而可以互相共享文件的權(quán)限
1)Linux基本9位權(quán)限之文件和目錄權(quán)限詳細(xì)說明坯屿。
2)Linux基本9位權(quán)限之字符和數(shù)字(8進(jìn)制)權(quán)限知識(shí)淹真。
3)權(quán)限及用戶用戶組屬性修改命令chmod抓韩、chown纠永、chgrp。
4)默認(rèn)權(quán)限umask以及系統(tǒng)目錄安全案例谒拴。
5)特殊權(quán)限Suid知識(shí)掌握,Sgid和sticky知識(shí)了解
第十三章Linux系統(tǒng)定時(shí)任務(wù)Cron(d)服務(wù)應(yīng)用實(shí)踐
1英上,周期性的執(zhí)行任務(wù)計(jì)劃的任務(wù)計(jì)劃軟件,Linux定時(shí)任務(wù)的常用軟件ceond
2豆茫,使用定時(shí)任務(wù)軟件幽邓,可以每天倦挂,每小時(shí)按你需求重復(fù)的執(zhí)行一項(xiàng)工作没炒。
例如:備份? 都是0點(diǎn)以后,2點(diǎn)爬起來備份,4點(diǎn)以后睡覺。
需要寫一個(gè)程序?qū)崿F(xiàn)自動(dòng)備份,然后讓定時(shí)任務(wù)軟件幫你執(zhí)行。
相當(dāng)于一個(gè)鬧鐘。。。式撼。
3,怎么用浦辨。
(1)系統(tǒng)任務(wù)定時(shí)計(jì)劃
1庆冕,不用管理員干預(yù),系統(tǒng)自動(dòng)執(zhí)行
2劈榨,也可以利用 系統(tǒng)任務(wù)為管理員服務(wù)。
[root@oldboy ~]# ll /var/log/messages*
-rw-------. 1 root root? 96594 Mar 21 12:40 /var/log/messages
-rw-------. 1 root root 485249 Mar 20 10:46 /var/log/messages-20190320
[root@oldboy ~]# ll /var/log/secure*
-rw-------. 1 root root 1430 Mar 21 12:50 /var/log/secure
-rw-------. 1 root root 2695 Mar 20 10:46 /var/log/secure-20190320
[root@oldboyedu /etc/cron.daily]# ll /etc/cron.daily/logrotate? /etc/logrotate.conf
-rwx------. 1 root root 219 Oct 31? 2018 /etc/cron.daily/logrotate
-rw-r--r--. 1 root root 662 Jul 31? 2013 /etc/logrotate.conf
按天切割日志晦嵌,就可以用logrotate同辣。
(2)用戶定時(shí)任務(wù)計(jì)劃
在Linux中,
cron 是定時(shí)任務(wù)的軟件名
crond是服務(wù)進(jìn)程名惭载,真正實(shí)現(xiàn)定時(shí)任務(wù)
crontab命令是用來設(shè)置定時(shí)任務(wù)規(guī)則的配置命令旱函。
要想配置定時(shí)任務(wù),首先啟動(dòng)crond服務(wù)描滔。
systemctl start crond.service
systemctl stop crond.service
systemctl status crond.service
開啟自啟動(dòng):
systemctl disable crond.service
systemctl enable crond.service
[root@oldboyedu ~]# systemctl status crond
● crond.service - Command Scheduler
? Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
? Active: active (running) since Thu 2020-10-08 01:56:12 CST; 2min 26s ago
Main PID: 13189 (crond)
? CGroup: /system.slice/crond.service
? ? ? ? ? └─13189 /usr/sbin/crond -n
Oct 08 01:56:12 oldboyedu crond[13189]: (CRON) INFO (RANDOM_DELAY will be...)
Oct 08 01:56:12 oldboyedu systemd[1]: Started Command Scheduler.
Oct 08 01:56:12 oldboyedu crond[13189]: (CRON) INFO (running with inotify...)
Oct 08 01:56:12 oldboyedu crond[13189]: (CRON) INFO (@reboot jobs will be...)
Hint: Some lines were ellipsized, use -l to show in full.
crontab命令是用來設(shè)置定時(shí)任務(wù)規(guī)則的配置命令棒妨。
內(nèi)容存放哪里了。定時(shí)任務(wù)內(nèi)容存放的位置/var/spool/cron/以當(dāng)前用戶名作為文件名
[root@oldboyedu ~]# ll /var/spool/cron/
total 8
-rw------- 1 oldboy oldboy 10 Oct? 8 02:04 oldboy
-rw------- 1 root? root? ? 6 Oct? 8 02:02 root
[root@oldboyedu ~]# cat /var/spool/cron/oldboy
###oldboy
-l l列表 查看已經(jīng)設(shè)置的定時(shí)任務(wù)*
-e edit 編輯定時(shí)任務(wù)*
-u user 查看特定用戶下定時(shí)任務(wù)
root:
crontab -l == cat /var/spool/cron/root
crontab -e == vim /var/spool/cron/root
編寫定時(shí)任務(wù)的語法:
# 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
# |? |? |? |? |
# *? *? *? *? *? (command to be executed)
共六列:
第一列:分 minute (0 - 59)
第二列:時(shí) 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
第六列:要執(zhí)行的任務(wù)命令或程序
特殊符號(hào)
* 表示每 或每一天 的意思
00 23 * * *? ? cmd
-連續(xù)分隔符? 1-10
00? 8-23? *? *? *? cmd
含长,? 列舉的意思
00 1券腔,2,3拘泞,4纷纫,5,6? * * * cmd
\n? n是任意一個(gè)數(shù)字陪腌, 是“每隔單位時(shí)間”辱魁,如:每隔10分鐘執(zhí)行一次任務(wù)可以寫成
*/10? *? *? * cmd
分 時(shí)? ? ? ? ? ? ? ? 天? ? ? 月? ? ? 星期
30? ? 9? ? ? ? ? ? *? ? ? ? ? ? 0? ? ? ? *
30? ? 8? ? ? ? ? ? *? ? ? ? ? *? ? ? ? ? *
=============================================
*/1 * * * * /bin/sh /scripts/data.sh
30 3,12 * * * /bin/sh /scripts/oldboy.sh
30 */6 * * *? ? /bin/sh /scripts/oldboy.sh
30 8-18/2 * * * /bin/sh /scripts/oldboy.sh
45 4 1,10,22 * * /application/apache/bin/apachectl graceful
10 1 * * 6,0 /application/apache/bin/apachectl graceful
0,30 18-23 * * * /application/apache/bin/apachectl graceful
00 */1 * * * /application/apache/bin/apachectl graceful
#################
* 23,00-07/1 * * * /application/apache/bin/apachectl graceful
00 */1 * * *
00 11 * 4 1-3 /application/apache/bin/apachectl graceful
老男孩思想:
1)先輸入* * * * *
2)先命令行操作成功。
3)拷貝命令到定時(shí)任務(wù)編輯里诗鸭。
同步電腦時(shí)間安裝包與
范例13-2:讓服務(wù)器時(shí)間每5分鐘和互聯(lián)網(wǎng)時(shí)間做一次同步染簇。
安裝時(shí)間服務(wù)軟件:yum?install?ntpdate?-y
更新互聯(lián)網(wǎng)時(shí)間?/usr/sbin/ntpdate?
ntp1.aliyun.com
范例13-2:讓服務(wù)器時(shí)間每5分鐘和互聯(lián)網(wǎng)時(shí)間做一次同步。
安裝時(shí)間服務(wù)軟件:yum install ntpdate -y
更新互聯(lián)網(wǎng)時(shí)間 /usr/sbin/ntpdate ntp1.aliyun.com
/dev/null 黑洞設(shè)備
MH370>/dev/null
&>/dev/null 等價(jià)>/dev/null 2>&1
[root@oldboyedu ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
范例13-3:每天晚上0點(diǎn)强岸,把站點(diǎn)目錄/var/www/html下的內(nèi)容打包備份到/data目錄下锻弓,并且要求每次生成不同的備份包名。
至少分三步:
1.命令行稿成功
準(zhǔn)備工作:
[root@oldboyedu ~]# mkdir /var/www/html /data -p
具體命令:
[root@oldboyedu ~]# tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
tar: Removing leading `/' from member names
/var/www/html/
[root@oldboyedu ~]# ll /data
total 4
-rw-r--r-- 1 root root 117 Mar 22 11:59 html_2019-03-22.tar.gz
2请唱、編寫定時(shí)任務(wù)
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
錯(cuò)了弥咪,不執(zhí)行。十绑。聚至。。
看報(bào)錯(cuò)日志本橙。扳躬。。錯(cuò)誤日志
定時(shí)任務(wù)沒有執(zhí)行,出錯(cuò)了日志在哪里贷币?
出錯(cuò)日志/var/log/cron
Mar 22 12:03:01 oldboyedu CROND[18770]: (root) CMD (tar zcvf /data/html_$(date +)
定時(shí)任務(wù)對(duì)%的要求击胜,百分號(hào)要轉(zhuǎn)義。\%
優(yōu)秀的答案(企業(yè)里):
1.命令行執(zhí)行
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
2.盡量用腳本文件實(shí)現(xiàn)
#mkdir /server/scripts -p #存放腳本的文件
運(yùn)維規(guī)范:
腳本位置:/server/scripts
軟件位置:/server/tools
編譯位置:/application/軟件名字-版本役纹,然后要軟鏈接偶摔。
13.5生產(chǎn)環(huán)境下的定時(shí)Cron書寫要領(lǐng)
13.5.1? 要領(lǐng)1:為定時(shí)任務(wù)規(guī)則加必要的注釋
13.5.2? 要領(lǐng)2:所有的定時(shí)任務(wù)盡量都以腳本的形式執(zhí)行
13.5.3? 要領(lǐng)3:在執(zhí)行的Shell腳本前加上/bin/sh
13.5.4? 要領(lǐng)4:定時(shí)任務(wù)中命令或腳本的結(jié)尾加>/dev/null 2>&1
13.5.5? 要領(lǐng)5:在指定用戶下執(zhí)行相關(guān)定時(shí)任務(wù)
13.5.6? 要領(lǐng)6:生產(chǎn)任務(wù)計(jì)劃程序中不要隨意打印輸出信息,有輸出的想法去掉。
13.5.7? 要領(lǐng)7:定時(shí)任務(wù)執(zhí)行的腳本要存放到規(guī)范路徑下
13.5.8? 要領(lǐng)8:配置定時(shí)任務(wù)要規(guī)范操作過程促脉,減少出錯(cuò)
13.5.9? 要領(lǐng)9:定時(shí)任務(wù)腳本中程序命令及路徑盡量用全路徑
13.5.10 要領(lǐng)10:時(shí)間變量%號(hào)要用反斜線轉(zhuǎn)義(只有定時(shí)任務(wù)里是命令時(shí)需要)
13.5.11 要領(lǐng)11:若腳本中調(diào)用了系統(tǒng)環(huán)境變量辰斋,要重新定義
13.5.11 要領(lǐng)12:出錯(cuò)或無法執(zhí)行,就檢查/var/log/cron日志