計(jì)劃任務(wù)分為一次性和循環(huán)性的計(jì)劃任務(wù)
一铛纬、一次調(diào)度執(zhí)行-----at
作用: 計(jì)劃任務(wù)主要是做一些周期性的任務(wù)菌赖,目前最主要的用途是定期備份數(shù)據(jù)
一次性調(diào)度執(zhí)行 at---實(shí)戰(zhàn)
語法格式
at <時(shí)間規(guī)格>
now +5min
teatime tomorrow (teatime is 16:00)
5pm august 3 2019
例1:
[root@linux-server ~ ]# yum -y install at
[root@linux-server ~]# systemctl status atd #查看啟動(dòng)狀態(tài)
[root@linux-server ~ ]# systemctl start atd //首先要啟動(dòng)服務(wù)
[root@linux-server ~]# at now +1min //一分鐘后開始執(zhí)行
at> useradd uuuu
at> <EOT> //Ctrl+D
job 1 at Sat Mar 21 22:34:00 2015
[root@linux-server ~]# id uuuu
例2:
[root@linux-server ~]# vim at.jobs
useradd u99
useradd u00
touch /a.txt
[root@linux-server ~]# at 20:33 < at.jobs
例3:
1. 準(zhǔn)備sudo用戶
[root@linux-server ~]# id jack
uid=1007(jack) gid=1012(jack) groups=1012(jack)
[root@linux-server ~]# useradd jack #如果不存在創(chuàng)建
[root@linux-server ~]# visudo
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD: ALL #添加內(nèi)容
[root@linux-server ~]# su - jack
2. 以sudo 用戶jack創(chuàng)建at任務(wù)
[jack@linux-server ~]$ vim jack.at
sudo useradd u200
sudo useradd u300
sudo touch /home/jack.txt
[jack@linux-server ~]$ at 20:38 < jack.at
循環(huán)調(diào)度執(zhí)行cron 用戶級(jí)
[root@linux-server ~]# systemctl status crond.service
[root@linux-server ~]# ps -ef | grep crond
root 755 1 0 20:18 ? 00:00:00 /usr/sbin/crond -n
#crond進(jìn)程每分鐘會(huì)處理一次計(jì)劃任務(wù)
存儲(chǔ)位置:
[root@linux-server ~]# cd /var/spool/cron/
管理方式:
crontab -l List the jobs for the current user. //列出當(dāng)前用戶的計(jì)劃任務(wù)
crontab -r Remove all jobs for the current users. //刪除當(dāng)前用戶所有的計(jì)劃任務(wù)
crontab -e Edit jobs for the current user. //編輯當(dāng)前用戶的計(jì)劃任務(wù)
管理員可以使用 -u username, 去管理其他用戶的計(jì)劃任務(wù)
語法格式 :
Minutes Hours Day-of-Month Month Day-of-Week Command
分鐘 小時(shí) 日 月 周 執(zhí)行的命令
0-59 0-23 1-31 1-12 0-7
上面的時(shí)間范圍可以查看man手冊(cè): #man 5 crontab
時(shí)間:
*:每
*/5 每隔分鐘
伴郁,:不同的時(shí)間段
- : 表示范圍
實(shí)戰(zhàn)
[root@linux-server ~]# vim /home/soso.sh
#!/bin/bash
touch /opt/a.txt
[root@linux-server ~]# chmod +x /home/soso.sh
創(chuàng)建計(jì)劃任務(wù)
[root@linux-server ~]# crontab -e //當(dāng)前用戶編寫計(jì)劃任務(wù)
每天6:00執(zhí)行
0 6 * * * /home/soso.sh
每天8:40執(zhí)行
40 8 * * * /home/soso.sh
每周六凌晨4:00執(zhí)行
0 4 * * 6 /home/soso.sh
每周六凌晨4:05執(zhí)行
5 4 * * 6 /home/soso.sh
每周六凌晨5:00執(zhí)行
0 5 * * 6 /home/soso.sh
每周一到周五9:30
30 9 * * 1-5 /home/soso.sh
每周一到周五8:00,每周一到周五9:00
0 8,9 * * 1-5 /home/soso.sh
每周六23:59
59 23 * * 6 /home/soso.sh
每天0:30
30 0 * * * /home/soso.sh
[root@linux-server ~]# crontab -l #列出計(jì)劃任務(wù)
實(shí)例
00 00 * * * /home/soso.sh #每天凌晨
00 02 * * * ls #每天2:00整
00 02 1 * * ls #每月1號(hào)2:00整
00 02 14 2 * ls #每年2月14號(hào)2:00整
00 02 * * 7 ls #每周日2:00整
00 02 * 6 5 ls #每年6月的周五2:00整
00 02 * * * ls #每天2:00整
*/5 * * * * ls #每隔5分鐘
00 02 1,5,8 * * ls #每月1,5,8號(hào)的2:00整
00 02 1-8 * * ls #每月1到8號(hào)的2:00整
使用其他用戶創(chuàng)建
[root@linux-server ~]# crontab -u jack -e #使用jack用戶創(chuàng)建
[root@linux-server ~]# crontab -u jack -l #查看jack用戶的計(jì)劃任務(wù)
[root@linux-server ~]# crontab -r #刪除當(dāng)前用戶的計(jì)劃任務(wù)
[root@linux-server ~]# crontab -u jack -r #刪除jack用戶的計(jì)劃任務(wù)
使用者權(quán)限文件:
文件:
/etc/cron.deny
說明:
該文件中所列用戶不允許使用crontab命令
文件:
/etc/cron.allow
說明:
該文件中所列用戶允許使用crontab命令
系統(tǒng)本身的計(jì)劃任務(wù)
/etc/crontab
日志輪轉(zhuǎn)
二秸脱、日志系統(tǒng)rsyslog
日志管理基礎(chǔ)
rsyslog 日志管理
logrotate日志輪轉(zhuǎn)
**一落包、處理日志的進(jìn)程 **
rsyslogd:絕大部分日志記錄,和系統(tǒng)操作有關(guān)撞反,安全妥色,認(rèn)證sshd,su,計(jì)劃任務(wù)at,cron... httpd/nginx/mysql: 可以自己的方式記錄日志
[root@linux-server ~]# ps aux |grep rsyslogd
root 752 0.0 0.2 216440 5548 ? Ssl 20:18 0:00 /usr/sbin/rsyslogd -n
日志配置主文件:
/etc/rsyslog.conf
二遏片、常見的日志文件(系統(tǒng)嘹害、進(jìn)程、應(yīng)用程序)
#tail -f /var/log/messages #動(dòng)態(tài)查看日志文件的尾部吮便,系統(tǒng)主日志文件
#tail -f /var/log/secure #認(rèn)證笔呀、安全
tail /var/log/maillog #跟郵件postfix相關(guān)
tail /var/log/cron #crond、at進(jìn)程產(chǎn)生的日志
tail /var/log/dmesg #和系統(tǒng)啟動(dòng)相關(guān)
tail /var/log/yum.log #yum的日志
tail -f /var/log/mysqld.log #MySQL日志
tail /var/log/xferlog #和訪問FTP服務(wù)器相關(guān)
/var/log/boot.log #系統(tǒng)啟動(dòng)過程日志記錄存放
[root@linux-server ~]#w #當(dāng)前登錄的用戶 /var/log/wtmp
[root@linux-server ~]#last #最近登錄的用戶 /var/log/btmp
[root@linux-server ~]#lastlog #所有用戶的登錄情況 /var/log/lastlog
三髓需、logrotate日志輪轉(zhuǎn)
什么是日志輪轉(zhuǎn)许师? 自動(dòng)切日志
注:可以針對(duì)任何日志文件(rsyslog 日志、Nginx訪問或錯(cuò)誤日志...)
一僚匆、logrotate (輪轉(zhuǎn)微渠,日志切割)
1. 如果沒有日志輪轉(zhuǎn),日志文件會(huì)越來越大
2. 將丟棄系統(tǒng)中最舊的日志文件咧擂,以節(jié)省空間
3. logrotate本身不是系統(tǒng)守護(hù)進(jìn)程逞盆,它是通過計(jì)劃任務(wù)crond每天執(zhí)行
logrotate 配置文件:
主配置文件:/etc/logrotate.conf (決定每個(gè)日志文件如何輪轉(zhuǎn))
配置日志輪轉(zhuǎn)
[root@linux-server ~]# vim /etc/logrotate.conf
weekly #輪轉(zhuǎn)的周期,一周輪轉(zhuǎn)
rotate 4 #保留4份
create #輪轉(zhuǎn)后創(chuàng)建新文件
dateext #使用日期作為后綴
#compress #日志輪替時(shí),舊的日志進(jìn)行壓縮
include /etc/logrotate.d #包含該目錄下的配置文件,會(huì)引用該目錄下面配置的文件
/var/log/wtmp { #對(duì)該日志文件設(shè)置輪轉(zhuǎn)的方法
monthly #一月輪轉(zhuǎn)一次
minsize 1M #最小達(dá)到1M才輪轉(zhuǎn),否則就算時(shí)間到了也不輪轉(zhuǎn)
create 0664 root utmp #輪轉(zhuǎn)后創(chuàng)建新文件松申,并設(shè)置權(quán)限
rotate 1 #保留一份
}
/var/log/btmp {
missingok #丟失不提示
monthly
create 0600 root utmp
rotate 1
}
實(shí)戰(zhàn)案例
例1:輪轉(zhuǎn)文件/var/log/yum.log
[root@linux-server ~]# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok #丟失不提醒
#notifempty #空文件不輪轉(zhuǎn)
#size 30k #只要到了30k就輪轉(zhuǎn)
#yearly
daily #每天輪轉(zhuǎn)一次
rotate 3
create 0777 root root
}
測(cè)試:
[root@linux-server ~]# /usr/sbin/logrotate /etc/logrotate.conf #手動(dòng)輪轉(zhuǎn)
[root@linux-server ~]# /usr/sbin/logrotate -f /etc/logrotate.conf #強(qiáng)制手動(dòng)輪轉(zhuǎn)
[root@linux-server ~]# ls /var/log/yum*
/var/log/yum.log /var/log/yum.log-20191110
[root@linux-server ~]# grep yum /var/lib/logrotate/logrotate.status #查看記錄所有日志文件最近輪轉(zhuǎn)的時(shí)間
"/var/log/yum.log" 2019-11-10-21:26:14
作業(yè)
1.測(cè)試當(dāng)日期和星期發(fā)生沖突的時(shí)候以哪個(gè)為準(zhǔn)云芦,還是取或的關(guān)系,全部都執(zhí)行?
2.計(jì)劃每星期天早8點(diǎn)服務(wù)器定時(shí)重啟贸桶,如何實(shí)現(xiàn)舅逸??
3.某系統(tǒng)管理員需要每天做一定的重復(fù)工作,編制一個(gè)解決方案:
(1).從下午 4:50 刪除/abc 目錄下的全部子目錄和全部文件皇筛;
(2).每逢周一下午 5:50 將/data目錄下的所有目錄和文件歸檔并壓縮為文件backup.tar.gz;
(3).在早上 8:00 開機(jī)后啟動(dòng)crontab琉历。
ssh服務(wù)
openssh-service 提供服務(wù)
openssh-clients 客戶端
sshd服務(wù)的端口號(hào)----22
安裝
[root@linux-server ~]# yum install -y openssh*
1.服務(wù)器端啟動(dòng)服務(wù):
systemctl start sshd
2.關(guān)閉防火墻和selinux
登錄方式
遠(yuǎn)程登錄:
[root@linux-server ~]# ssh root@192.168.246.114
參數(shù)解釋:
root 用戶默認(rèn)不寫為root,也可以使用其他用戶
-p:prot端口水醋,指定端口旗笔,如果端口修改了需要指定
無密碼登陸(ssh密鑰認(rèn)證)
1.產(chǎn)生公鑰和私鑰: 生成一對(duì)密鑰:公鑰+私鑰
#ssh-keygen #一直回車
2.查看鑰匙的目錄:
#cd /root/.ssh/
id_rsa ---私鑰
id_rsa.pub ---公鑰
known_hosts ----確認(rèn)過公鑰指紋的可信服務(wù)器列表的文件
authorized_keys ---授權(quán)文件,是傳輸過公鑰到對(duì)方服務(wù)后會(huì)自動(dòng)重命名生成的
3.拷貝公鑰給對(duì)方:
#ssh-copy-id ip地址
ip地址:指的是對(duì)方服務(wù)器
4.遠(yuǎn)程連接的時(shí)候就不用輸入密碼了
修改端口號(hào):
修改配置文件:
# vim /etc/ssh/sshd_config
17 #Port 22 #將注釋去掉离例,修改端口號(hào)可以修改為自定義的换团。
[root@linux-server ~]# systemctl restart sshd
遠(yuǎn)程拷貝
遠(yuǎn)程拷貝:
# scp /a.txt ip:/路徑
源文件 目標(biāo)地址
誰是遠(yuǎn)程加誰ip
遠(yuǎn)程拷貝改了端口加-(大)p
目錄加 -r
常用命令
[root@linux-server ~]# ping www.baidu.com #ping命令,可以檢查主機(jī)是否可以聯(lián)網(wǎng)
PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=1 ttl=128 time=55.8 ms
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=2 ttl=128 time=36.6 ms
[root@linux-server ~]# ping -c 3 www.baidu.com
-c:指定次數(shù)
#ping命令是通過icmp協(xié)議:用于在IP主機(jī)宫蛆、路由器之間傳遞控制消息艘包。控制消息是指網(wǎng)絡(luò)通不通耀盗、主機(jī)是否可達(dá)想虎、路由是否可用等網(wǎng)絡(luò)本身的消息
telnet命令用于登錄遠(yuǎn)程主機(jī),對(duì)遠(yuǎn)程主機(jī)進(jìn)行管理叛拷。telnet因?yàn)椴捎妹魑膫魉蛨?bào)文舌厨,安全性不好,很多Linux服務(wù)器都不開放telnet服務(wù)忿薇,而改用更安全的ssh方式了裙椭。
[root@linux-server ~]# telnet 192.168.246.156 80 #檢查tcp連接80端口是否開放
Trying 192.168.246.156...
Connected to 192.168.246.156. #如果出現(xiàn)這樣那就是通了
Escape character is '^]'.
給自己win的電腦安裝telnet
#telnet與ssh的區(qū)別:
telnet:不安全躏哩,沒有對(duì)傳輸數(shù)據(jù)進(jìn)行加密,容易被監(jiān)聽揉燃,還有遭受中間人攻擊扫尺,telnet不能壓縮傳輸數(shù)據(jù),所以傳輸慢
ssh:對(duì)數(shù)據(jù)進(jìn)行了加密炊汤,安全度高正驻,ssh傳輸數(shù)據(jù)經(jīng)過壓縮,所以傳輸速度比較快
作業(yè)