在本文中,我們將回顧如何者在Red Hat Enterprise Linux 7中安裝、更新和移除套件。我們還將介紹如何使用cron自動化任務,並將在本指南的結尾部分解釋如何尋找和解釋系統日誌文件,著重教導您這些技能對每個系統管理員來說都是必要的。

透過Yum管理套件
要以及相关依賴套件(若尚未安裝)來安裝套件,您可以使用:
# yum -y install package_name(s)
其中套件名稱(s)代表至少一個實際的套件名稱。
例如,要安裝httpd和mlocate(順序不限),請打入。
# yum -y install httpd mlocate
注意:上例中的y字母會略過yum在執行要求的實例下載和安裝前的确认提示。如果您希望,可以省略它。
default,yum會根據OS架構來安裝與之相匹配的架构的套件,除非通過將套件架構添加到其名稱後來覆蓋。
例如,在64位系統上,yum install package會安裝套件的x86_64版本,而yum install package.x86(如果可用)將安裝32位的版本。
當你想安裝一個包裹但不知道它的确切名稱時,search all或search選項可以分別在目前啟用的倉庫中尋找包裹名稱和/或描述中的一定關鍵詞。
例如,
# yum search log
將搜索已安裝的倉庫中包含log關鍵詞的包裹名稱和概要,而
# yum search all log
將也在包裹描述和url字段中尋找相同的關鍵詞。
一旦搜索返回包裹清單,您可能想在安裝之前顯示它們的更多信息。那時info選項將大有裨益:
# yum info logwatch

您可以定期使用以下命令查找更新:
# yum check-update
上述命令將返回所有可用的更新 Installation Overview。在下面的圖像中展示的示例中,只有rhel-7-server-rpms有可用的更新:

您可以使用
# yum update rhel-7-server-rpms
alone to update that package alone.yum update一次性更新所有可以更新的包裹。
那麼,當你知道一個可执行文件的名稱,比如ps2pdf,但不都知道哪个包裹提供它時該如何是好?您可以使用yum whatprovides “*/[executable]”
來查找:
# yum whatprovides “*/ps2pdf”

當谈到移除包裹時,您可以使用yum remove package來這樣做。是不是很简单呢?這顯示了yum是一個完整而強大的包裹管理器。
# yum remove httpd
旧的单纯RPM
RPM(又名RPM套件管理器,或最初RedHat套件管理器)也可以用於安装或更新套件,當它們以独立的.rpm
套件形式出现時。
它通常與-Uvh
旗帜一起使用,以指示如果套件尚未存在,則應該安装它,如果已經安裝,則應該嘗試更新它(-U)
,在執行操作時会产生冗長的分不出文字(-v)
以及带有井號的進度條(-h)
。例如,
# rpm -Uvh package.rpm
Another typical use of rpm is to produce a list of currently installed packages with code>rpm -qa (short for query all):
# rpm -qa

使用Cron排程任務
Linux和其他類Unixlike作業系統中包含一個稱為cron的工具,它讓您能夠排程任務(即命令或shell腳本)定期執行。Cron每分鐘檢查/var/spool/cron資料夾中是否有以/etc/passwd中的帳號命名的文件。
當執行命令時,任何輸出都會以郵件發送給crontab的所有者(如果存在的話,也可以發送到/etc/crontab中的MAILTO環境變量指定的用戶)。
通過輸入crontab -e 並按下Enter鍵創建的crontab文件具有以下格式:

因此,如果我們想要在每個月的第二天的凌晨2:15更新本地文件數據庫(該數據庫由locate用於通過名稱或模式查找文件),我們需要添加以下crontab條目:
15 02 2 * * /bin/updatedb
上述crontab條目的含義是“在每個月的第二天的凌晨2:15運行/bin/updatedb”。正如你已經猜到的,星號符號被用作通配符。
在添加cron任務後,你可以看到一個名為root的文件被添加到/var/spool/cron中,正如我們之前提到的那樣。該文件列出了crond守護進程應該運行的所有任務:
# ls -l /var/spool/cron

在上面的圖像中,可以使用cat /var/spool/cron/root命令或者
# crontab -l
命令來顯示當前用戶的crontab。如果你需要按更精細的時間間隔運行任務(例如,每天運行兩次或每月運行三次),cron也可以幫助你實現這一點。
例如,要在每個月的1日和15日運行/my/script並將任何輸出發送到/dev/null,可以添加兩個crontab條目,如下所示:
01 00 1 * * /myscript > /dev/null 2>&1 01 00 15 * * /my/script > /dev/null 2>&1
但為了讓任務更容易維護,您可以將兩個条目合為一個:
01 00 1,15 * * /my/script > /dev/null 2>&1
按照前面的示例,我們可以在每月的第一天的凌晨1:30運行/my/other/script:
30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1
但當您需要每隔“x”分鐘、小時、日子或月份重複某個任務時,您可以將右側的位置除以期望的頻率。以下的crontab條目與之前的完全相同:
30 01 1 */3 * /my/other/script > /dev/null 2>&1
或者,也許您需要在系統啟動後以固定的頻率運行某個任務,例如。您可以使用以下字符串來代替五個字段,以指示您希望任務運行的精確時間:
@reboot Run when the system boots. @yearly Run once a year, same as 00 00 1 1 *. @monthly Run once a month, same as 00 00 1 * *. @weekly Run once a week, same as 00 00 * * 0. @daily Run once a day, same as 00 00 * * *. @hourly Run once an hour, same as 00 * * * *.
閱讀亦然: 在RHEL 7中排程cron任務的11個命令
尋找和查看記錄
系統記錄位於/var/log目錄內。根據Linux Filesystem Hierarchy Standard,這個目錄包含各種記錄文件,這些文件在系統運行時由相應的守候进程寫入或適宜的子目錄中(如audit、httpd或samba在以下圖像中)):
# ls /var/log

其他有趣的日志包括dmesg(包含内核环形缓冲区中的所有消息)、secure(记录需要用户身份验证的连接尝试)、messages(系统范围的消息)和wtmp(记录所有用户登录和注销)。
日志非常重要,因为它们让您随时了解系统中正在发生的事情,以及过去发生的事情。它们代表了一个无价的工具,用于故障排除和监视Linux服务器,并且经常与tail -f command
结合使用,以实时显示发生的事件并记录在日志中。
例如,如果您想显示与内核相关的事件,请键入以下命令:
# tail -f /var/log/dmesg
同样,如果您想查看对您的Web服务器的访问:
# tail -f /var/log/httpd/access.log
总结
如果您知道如何有效地管理软件包、安排任务,并且知道在哪里查找有关系统当前和过去操作的信息,那么您可以放心,不会经常遇到意外。希望本文能帮助您学习或复习这些基本技能。
如果您有任何问题或意见,请不要犹豫,使用下方的联系表格给我们留言。
Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/