一.SSH免密登陸配置 1、相關概念 SSH 為 Secure Shell(安全外殼協議) 的縮寫。 很多ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而SSH就是專為遠程登錄會話和其他網路服務提供安全性的協議。 ...
一.SSH免密登陸配置
1、相關概念
SSH 為 Secure Shell(安全外殼協議) 的縮寫。
很多ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而SSH就是專為遠程登錄會話和其他網路服務提供安全性的協議。
SSH的具體實現是由客戶端和服務端的軟體組成的
服務端是一個守護進程(sshd),他在後臺運行並響應來自客戶端的連接請求。
客戶端包含ssh程式以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程式。
2 密鑰登陸方式配置
假如 A 要登陸 B
在A上操作:
1/ 首先生成密鑰對
ssh-keygen (提示時,直接回車即可)
2/ 再將A自己的公鑰拷貝並追加到B的授權列表文件authorized_keys中
ssh-copy-id B
二.網路管理
1 主機名配置
- 1/ 查看主機名
hostname 2/ 修改主機名(重啟後無效)
hostname hadoop3/ 修改主機名(重啟後永久生效)
vi /ect/sysconfig/network
2 IP地址配置
修改IP地址
1/ 方式一:setup
用root輸入setup命令,進入互動式修改界面2/ 方式二:修改配置文件(重啟後永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth03/ 方式三:ifconfig命令
(重啟後無效)
ifconfig eth0 192.168.12.22
3 功能變數名稱映射
/etc/hosts文件 用於在通過主機名進行訪問時做ip地址解析之用
所以,你想訪問一個什麼樣的主機名,就需要把這個主機名和它對應的ip地址配置在/etc/hosts文件中:
vi /etc/hosts
4 網路服務管理
1/ 後臺服務管理
service network status 查看指定服務的狀態
service network stop 停止指定服務
service network start 啟動指定服務
service network restart 重啟指定服務
service --status-all 查看系統中所有的後臺服務2/ 設置後臺服務的自啟配置
chkconfig 查看所有伺服器自啟配置
chkconfig iptables off 關掉指定服務的自動啟動
chkconfig iptables on 開啟指定服務的自動啟動
5 系統中網路進程的埠監聽情況
netstat -nltp
三、防火牆配置
查看防火牆狀態
service iptables status
關閉防火牆
service iptables stop
啟動防火牆
service iptables start
禁止防火牆自啟
chkconfig iptables off
1、列出iptables規則
iptables -L -n
列出iptables規則並顯示規則編號
iptables -L -n --line-numbers
2、列出iptables nat表規則(預設是filter表)
iptables -L -n -t nat
3、清除預設規則(註意預設是filter表,如果對nat表操作要加-t nat)
清除所有規則
iptables -F
重啟iptables發現規則依然存在,因為沒有保存
service iptables restart
保存配置
service iptables save
4、禁止ssh登陸(若果伺服器在機房,一定要小心)
iptables -A INPUT -p tcp --dport 22 -j DROP
刪除規則
iptables -D INPUT -p tcp --dport 22 -j DROP
加入一條INPUT規則開放80埠
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
四、高級文本編輯
1.cut命令
cut語法
[root@www ~]# cut -d'分隔字元' -f fields ## 用於有特定分隔字元
[root@www ~]# cut -c 字元區間 ## 用於排列整齊的信息
選項與參數:
-d:後面接分隔字元。與 -f 一起使用;
-f:依據 -d 的分隔字元將一段信息分割成為數段,用 -f 取出第幾段的意思;
-c:以字元 (characters) 的單位取出固定字元區間;
PATH 變數如下
[root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
1 | 2 | 3 | 4 | 5 | 6 | 7
將 PATH 變數取出,找出第五個路徑。
echo $PATH | cut -d':' -f 5
/usr/local/bin
將 PATH 變數取出,找出第三和第五個路徑。
echo $PATH | cut -d ':' -f 3,5
/sbin:/usr/local/bin
將 PATH 變數取出,找出第三到最後一個路徑。
echo $PATH | cut -d ':' -f 3-
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
將 PATH 變數取出,找出第一到第三個路徑。
echo $PATH | cut -d ':' -f 1-3
/bin:/usr/bin:/sbin:
將 PATH 變數取出,找出第一到第三,還有第五個路徑。
echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin
實用例子:只顯示/etc/passwd的用戶和shell
cat /etc/passwd | cut -d ':' -f 1,7
root:/bin/bash
daemon:/bin/sh
bin:/bin/sh
2.sed命令
1/ 刪除:d命令
$ sed '2d' example -----刪除example文件的第二行。
$ sed '2,$d' example -----刪除example文件的第二行到末尾所有行。
$ sed '$d' example -----刪除example文件的最後一行。
$ sed '/test/'d example -----刪除example文件所有包含test的行。2/ 替換:s命令
$ sed 's/test/mytest/g' example
在整行範圍內把test替換為mytest。如果沒有g標記,則只有每行第一個匹配的test被替換成mytest。$ sed -n 's/^test/mytest/p' example
(-n)選項和p標誌一起使用表示只列印那些發生替換的行。也就是說,如果某一行開頭的test被替換成mytest,就列印它。$ sed 's/^192.168.0.1/&localhost/' example
&符號表示追加一個串到找到的串後。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost。
3.awk命令
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。
如果只是顯示最近登錄的5個帳號
last -n 5 | awk '{print $1}'
root
root
root
dmtsai
root
awk工作流程是這樣的:讀入有'\n'換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域。預設域分隔符是"空白鍵" 或 "[tab]鍵",所以$1表示登錄用戶,$3表示登錄用戶ip,以此類推。
如果只是顯示/etc/passwd的賬戶
cat /etc/passwd |awk -F ':' '{print $1}'
root
daemon
bin
sys
這種是awk+action的示例,每行都會執行action{print $1}。
-F指定域分隔符為':'
如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以tab鍵分割
cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'
root /bin/bash
daemon /bin/sh
bin /bin/sh
sys /bin/sh
如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以逗號分割,而且在所有行添加列名name,shell,在最後一行添加"blue,/bin/nosh"。
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh
awk工作流程是這樣的:先執行BEGING,然後讀取文件,讀入有/n換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域,隨後開始執行模式所對應的動作action。接著開始讀入第二條記錄······直到所有的記錄都讀完,最後執行END操作。
五. crontab配置
通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常適合周期性的日誌分析或數據備份等工作。
2、安裝crontab
yum install crontabs
服務操作說明:
service crond start ## 啟動服務
service crond stop ## 關閉服務
service crond restart ## 重啟服務
service crond reload ## 重新載入配置
查看crontab服務狀態:
service crond status
手動啟動crontab服務:
service crond start
查看crontab服務是否已設置為開機啟動,執行命令:
chkconfig --list
加入開機自動啟動:
chkconfig --level 35 crond on
3、命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
參數說明:
-u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用戶來運行。
file:file是命令文件的名字,表示將file做為crontab的任務列表文件並載入crontab。
-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。
-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。
-r:刪除定時任務配置,從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則預設刪除當前用戶的crontab文件。
-i:在刪除用戶的crontab文件時給確認提示。
命令示例:
crontab file [-u user] ## 用指定的文件替代目前的crontab。
必掌握:
crontab -l [-u user] ## 列出用戶目前的crontab.
crontab -e [-u user] ## 編輯用戶目前的crontab.
4、調度配置
4.1 配置說明
基本格式 :
command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用或者 /1表示
第2列表示小時0~23(0表示0點) 7-9表示:8點到10點之間
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
4.2 配置示例
/1 * * * date >> /root/date.txt
上面的例子表示每分鐘執行一次date命令
30 21 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每晚的21:30重啟apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每月1、10、22日的4 : 45重啟apache。
10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart
上面的例子表示每周六、周日的1 : 10重啟apache。
0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。
0 23 * * 6 /usr/local/etc/rc.d/httpd restart
上面的例子表示每星期六的11 : 00 pm重啟apache。
- /1 * * /usr/local/etc/rc.d/httpd restart
上面的例子每一小時重啟apache
- 23-7/1 * * * /usr/local/etc/rc.d/httpd restart
上面的例子晚上11點到早上7點之間,每隔一小時重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/httpd restart
上面的例子每月的4號與每周一到周三的11點重啟apache
0 4 1 jan * /usr/local/etc/rc.d/httpd restart
上面的例子一月一號的4點重啟apache