Linux基本運維匯總
我在cnaaa上購買了云服務器。
1 rpm管理
rpm的作用類似于windows上的電腦管家中軟件管理、安全衛(wèi)士里面 “軟件管家” 等產(chǎn)品,是 RPM 軟件包的管理工具。rpm 原本是 Red Hat Linux 發(fā)行版專門用來管理 Linux 各項套件的程序,由于它遵循 GPL 規(guī)則且功能強大方便,因而廣受歡迎。逐漸受到其他發(fā)行版的采用。RPM 套件管理方式的出現(xiàn),讓 Linux 易于安裝,升級,間接提升了 Linux 的適用度。
要想裝軟件,和 windows 下一樣,先得找到安裝包。
軟件包的獲得方式:
- 不嫌麻煩的話,去官網(wǎng)去下載;
- 不介意老版本的話,可以從光盤(或者鏡像文件)中讀??;
rpm要安裝軟件需要掛載安裝,并且一個一個的去安裝對應的依賴,對于一般運維工作,使用yum即可
2 YUM包管理系統(tǒng)
2.1 yum簡介
yum(Yellow dog Updater Modified)是 CentOS 中屬于 RPM 前端軟件包管理器,能從指定的服務器中下載 RPM 包,并自動分析和處理 RPM 包之間的依賴關系,最后將依次所依賴的軟件包都安裝了,而無需繁瑣的一個一個安裝。
yum 相比 rpm 更人性化,更便捷:
- 聯(lián)網(wǎng)安裝(不用掛載)
- 聯(lián)動安裝(軟件所需依賴自動安裝)
- 聯(lián)網(wǎng)更新
- yum 倉庫的組成部分
- 數(shù)據(jù) :包含所有的軟件包文件
- 元數(shù)據(jù):指的是數(shù)據(jù)文件:包括每個包的包名、版本信息、各包所包含的文件列表、包與包之間的依賴關系、包的分組信息.
2.2 yum的配置文件
- yum 的配置文件有 2 種:
# 為所有倉庫提供公共配置
/etc/yum.conf
# 為倉庫的指向提供配置
/etc/yum.repos.d/*.repo
2.2.1 主配置文件
- 路徑
/etc/yum.conf
[main]
# 下載RPM包的緩存目錄
cachedir=/var/cache/yum/$basearch/$releasever
# RPM緩存的程序包安裝完成后是否保存,0表示不保存,1表示保存
keepcache=0
# 調(diào)試級別 取值范圍 0 – 10,默認值為2
debuglevel=2
# yum相關日志存放路徑
logfile=/var/log/yum.log
# 是否要平臺完全匹配才能安裝
exactarch=1
# 需不需要檢查已過期的倉庫
obsoletes=1
# 是否檢查包的完整性和合法性
gpgcheck=1
# 是否允許支持yum的插件功能,0 表示不允許 ,1表示允許
plugins=1
# 允許保留多少個內(nèi)核包
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
# 指定一個軟件包,yum 會根據(jù)這個包判斷你的發(fā)行版本,默認是redhat-release
distroverpkg=centos-release
2.2.1 倉庫配置文件
- 路徑
/etc/yum.repos.d/*.repo
# 容器名字,必須是唯一的
[repositoryID]
# 倉庫的名字,僅作一個標識
name=Some name for this repository
# 指定真正倉庫所在的路徑,可以指多個倉庫
baseurl=url://path/to/repository/
# 指是否啟用這個倉庫,1表示啟用,0表示不啟用
enabled={1|0}
# 是否要檢測軟件包的合法性,1表示啟用,0表示不啟用
gpgcheck={1|0}
# 軟件包的公鑰文件所在路徑
gpgkey=URL
# 是否基于組來批量管理程序包
enablegroups={1|0}
# 意思是有多個url可供選擇時,yum選擇的次序,roundrobin是隨機選擇,默認為:roundrobin,意為隨機挑選;
failovermethod={roundrobin|priority}
# 倉庫優(yōu)先級 ,默認為1000
cost=1000
2.3 配置本地 yum 源
2.3.1 掛載光盤
- 虛擬光驅(qū)加載鏡像文件,然后掛載到本地目錄,先用 lsblk 命令查看光驅(qū)的塊設備名稱,這里是 sr0
#建立本地yum源文件夾
mkdir /mnt/dvd
#掛載
mount –o ro /dev/sr0 /mnt/dvd
2.3.2 開機自動掛載
- 方法 1
- 修改
/etc/rc.local文件。該文件是操作系統(tǒng)開機后最后執(zhí)行的一個文件,該文件默認是沒有執(zhí)行權限的,如果你是第一次修改,請記得加執(zhí)行權限。這就相當于開機后用腳本執(zhí)行了一條掛載命名
echo "mount -O ro /dev/sr0 /mnt/dvd" >> /etc/rc.local
- 方法 2
- 編寫
/etc/fstab文件,將光盤當作塊狀設備掛載到系統(tǒng)中。
# 將下面一行配置寫入/etc/fstab中
/dev/sr0 /mnt/dvd iso9660 defaults 0 0
2.3.3 修改配置文件指向本地倉庫
- 配置文件路徑:
/etc/yum.repos.d/
# 備份源配置文件
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
- 創(chuàng)建本地配置文件,名字隨意,如:
vim /etc/yum.repos.d/dvd.repo
# 倉庫的名字,不要有特殊符號(自定義)
[dvd]
# 倉庫描述
name=localdvd
# 指定yum倉庫的路徑;file://表示本地路徑
baseurl=file:///mnt/dvd
# 啟用倉庫,1表示啟用;0表示不啟用
enabled=1
# 不用校驗軟件包的簽名,0表示不校驗;1表示校驗
gpgcheck=0
2.3.4 測試驗證
yum clean all #清空yum緩存 rm -rf /var/cache/yum
yum makecache #創(chuàng)建yum緩存
yum list #查看倉庫里的軟件包
2.4 配置國內(nèi)網(wǎng)絡 yum 源(重點)
前面說了,由于自帶的 yum 源是國外的源,速度很慢,所以可以替換為國內(nèi)的 yum 源。目前國內(nèi)提供 yum 源的機構(gòu)有很多,如阿里、網(wǎng)易、搜狐、清華等等,這里以阿里源為例。
2.4.1 還是先備份原來的 yum 源
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
2.4.2 下載網(wǎng)絡源的 repo 文件到服務器
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
也可以將這兩個文件自己保存起來,每次新建服務器,將該源替換進去。
清空并創(chuàng)建緩存
# 清空yum緩存 rm -rf /var/cache/yum
yum clean all
#創(chuàng)建yum緩存
yum makecache
2.5 擴展:自建局域網(wǎng) yum 源
公司內(nèi)網(wǎng)自建了 yum 倉庫,在公司內(nèi)的服務器可以使用
[base]
name=CentOS-7-Base-hbgg
baseurl=http://10.10.16.80/centos/7/base/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7-updates-hbgg
baseurl=http://10.10.16.80/centos/7/updates/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7-extras-hbgg
baseurl=http://10.10.16.80/centos/7/extras/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=CentOS-7-epel-hbgg
baseurl=http://10.10.16.80/centos/7/epel/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-EPEL-7
具體用法不再贅述,參考前文。
1 安裝網(wǎng)絡 yum 源
# 清理緩存
yum clean all
# 更新YUM源
yum makecache
# 備份默認源
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
# 刪除默認的國外源
rm -rf /etc/yum.repos.d/*
# 下載阿里源的repo文件到服務器
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理緩存
yum clean all
# 更新YUM源
yum makecache
# 關閉防火墻
systemctl stop firewalld.service
# 禁止開機自啟
systemctl disable firewalld
# 關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 重啟
reboot
# 查詢啟用的yum源清單,獲取倉庫標識
yum repolist
# 安裝常用軟件
yum -y install vim wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils ntpdate
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
2.4 yum 命令的用法
yum 查詢功能
yum [options] [command] [package …]
-y:默認yum需要是交互模式,-y表示自動提供yes響應
search:搜索某個軟件名或關鍵字
list:列出所有yum所管理的軟件包和名稱
info:同上,也類似rpm -qai
provides:查找該命令是由軟件安裝生成的,類似rpm -df的功能
repolist:列出所有可用的repo
yum 安裝、升級、降級、卸載
yum install:后面接需要安裝的軟件
reinstall:后面接需要重新安裝的軟件
update:后面接需要升級到的軟件
check-update:檢查可用的升級包
downgrade:后面接需要降級到的版本
remove:卸載軟件
erase:功能同上,卸載和軟件組相關的功能
yum 組功能
yum grouplist:列出所有可使用的組列表
groupinfo:后面接groupname,可用了解該group內(nèi)含所有組的名稱
groupinstall:安裝整組的軟件
groupremove:刪除某個組的軟件
清理緩存
yum clean { all | package | headers }
all:將所有的數(shù)據(jù)刪除,包括元數(shù)據(jù)和軟件文件
package:將所有已下載的軟件文件刪除
headers:刪除所有下載的元數(shù)據(jù)文件
構(gòu)建緩存
yum makecache
1 查看服務器基本信息
1.1 查看 gcc 版本級相關信息
gcc -v
1.2 查看當前內(nèi)核系統(tǒng)版本信息
cat /proc/version
1.3 安裝 lsb_release
yum install redhat-lsb -y
1.4 查看操作系統(tǒng)版本信息 (使用命令時提示 command not found, 需要安裝 redhat-lsb)
lsb_release -a
2 開關防火墻
在 RHEL7 里有幾種防火墻共存:
- firewalld
- iptables
- ebtables
- 默認是使用 firewalld 來管理 netfilter 子系統(tǒng),不過底層調(diào)用的命令仍然是 iptables 等
- Firewalld 與 iptables 對比更自由、更人性化
2.1 查看 firewalld 狀態(tài)
systemctl status firewalld
2.2 策略啟停 firewalld
# 啟動
systemctl start firewalld
# 停止
systemctl stop firewalld
2.3 開機啟用 / 禁用
# 啟用
systemctl enable firewalld
# 禁用
systemctl disable firewalld
2.4 查看默認域中的火墻
firewall-cmd --list-all
2.5 啟 / 停、重啟一個firewalld服務
# 啟動
systemctl start firewalld.service
# 關閉
systemctl stop firewalld.service
# 重啟一個服務
systemctl restart firewalld.service
2.6 顯示一個firewalld服務的狀態(tài)
systemctl status firewalld.service
2.7 是否開機自啟
# 查看服務是否開機啟動
systemctl is-enabled firewalld.service
# 查看已啟動的服務列表
systemctl list-unit-files|grep enabled
# 查看啟動失敗的服務列表
systemctl --failed
# 開機自啟
systemctl enable firewalld.service
# 禁止開機自啟
systemctl disable firewalld.service
2.8 查看端口開放情況
firewall-cmd --list-port
- 如果提示
FirewallD is not running,說明防火墻處于關閉狀態(tài)
2.9 防火墻開啟狀態(tài)下開放端口
firewall-cmd --zone=public --add-port=3334/tcp --permanent
# 重啟firewall
firewall-cmd --reload