Centos7系統下修改主機名、清理linux日志和操作記錄 - 運維筆記


 

一、修改主機名
習慣了在Centos6系統下修改主機名的操作,但是Centos7下修改主機名的操作卻大不相同!操作筆記如下:

在CentOS中,有三種定義的主機名:靜態的(static),瞬態的(transient),和靈活的(pretty):
 
    * "靜態"主機名也稱為內核主機名,是系統在啟動時從/etc/hostname自動初始化的主機名。
    * "瞬態"主機名是在系統運行時臨時分配的主機名,例如,通過DHCP或mDNS服務器分配。靜態主機名和瞬態主機名都遵從作為互聯網域名同樣的字符限制規則。
    * "靈活"主機名則允許使用自由形式(包括特殊/空白字符)的主機名,以展示給終端用戶(如kevin-test.kevin.com)。
 
 
在CentOS 7中,有個叫hostnamectl的命令行工具,它允許你查看或修改與主機名相關的配置。
1)要查看主機名相關的設置:
[root@kevin-test ~]# hostname
kevin-test.kevin.com
 
[root@kevin-test ~]# hostnamectl 
   Static hostname: kevin-test.kevin.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 45461f76679f48ee96e95da6cc798cc8
           Boot ID: 1e7ed2e4777240529451d611c03465c6
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.13.1.el7.x86_64
      Architecture: x86-64
 
或者
[root@kevin-test ~]# hostnamectl  status
   Static hostname: kevin-test.kevin.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 45461f76679f48ee96e95da6cc798cc8
           Boot ID: 1e7ed2e4777240529451d611c03465c6
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.13.1.el7.x86_64
      Architecture: x86-64
 
2)只查看靜態、瞬態或靈活主機名,分別使用"--static","--transient"或"--pretty"選項
[root@kevin-test ~]# hostnamectl --static
kevin-test.kevin.com
[root@kevin-test ~]# hostnamectl --transient
kevin-test.kevin.com
[root@kevin-test ~]# hostnamectl --pretty
 
[root@kevin-test ~]#
 
3)要同時修改所有三個主機名:靜態、瞬態和靈活主機名
[root@kevin-test ~]# hostnamectl set-hostname kevin-test.kevin.com
[root@kevin-test ~]# hostnamectl --pretty set-hostname kevin-test.kevin.com
[root@kevin-test ~]# hostnamectl --static set-hostname kevin-test.kevin.com
[root@kevin-test ~]# hostnamectl --transient set-hostname  kevin-test.kevin.com
 
修改靜態主機名
[root@kevin-test ~]# hostnamectl --static set-hostname kevin-test.kevin.com
其實,不必重啟機器以激活永久主機名修改。上面的hostnamectl命令會立即修改內核主機名。注銷並重新登入后在命令行提示來觀察新的靜態主機名。
 
就像上面展示的那樣,在修改靜態/瞬態主機名時,任何特殊字符或空白字符會被移除,而提供的參數中的任何大寫字母會自動轉化為小寫。一旦修改了靜態主機名,/etc/hostname 將被自動更新。然而,/etc/hosts 不會更新以保存所做的修改,所以你每次在修改主機名后一定要手動更新/etc/hosts,之后再重啟CentOS 7。否則系統再啟動時會很慢。
 
4)手動更新/etc/hosts(這個只是臨時生效,重啟服務器后,主機名還是會恢復默認)
[root@kevin-test ~]# cat /etc/hosts
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 kevin-test.kevin.com

===============================================================================
除此之外,還有一種永久修改主機名的方法:修改配置文件 /etc/hostname 
[root@kevin-test ~]# vim /etc/hostname
kevin-test.kevin.com

然后重啟服務器即可永久生效
[root@kevin-test ~]# reboot

二、清理linux日志和操作記錄

1)清理linux日志
linux系統產生的各種日志時間久了,可能會導致系統盤爆滿。下面分享一些基本常用的清理linux系統日志的方法:
# echo > /var/log/wtmp       # 清除用戶登錄記錄
# echo > /var/log/btmp       # 清除嘗試登錄記錄
# echo > /var/log/lastlog      # 清除最近登錄信息
# echo > /var/log/secure     # 登錄信息
# echo > /var/log/messages   # 系統操作日志
# echo > /var/log/syslog       # 記錄系統日志的服務
# echo > /var/log/xferlog
# echo > /var/log/auth.log
# echo > /var/log/user.log
# cat /dev/null > /var/adm/sylog
# cat /dev/null > /var/log/maillog
# cat /dev/null > /var/log/openwebmail.log
# cat /dev/null > /var/log/mail.info
# echo > /var/run/utmp

2)清除系統操作過的命令記錄(即清理history)
# echo > .bash_history          # 清除保存的用戶操作歷史記錄
# history -cw                   # 清除所有歷史
# vim /etc/profile              
HISTSIZE=0                      # 改成0或者1          

history命令用於顯示歷史記錄和執行過的指令命令。
history命令讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。

history命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。

history命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制。
默認是不顯示命令的執行時間,命令的執行時間history其實已經記錄,只是沒有顯示而已。

需要注意:
如想查詢某個用戶在系統上執行了什么命令,可以使用root用戶身份登錄系統,檢查Home目錄下的用戶主目錄下的".bash_history"文件,該文件記錄了用戶所使用的命令和歷史信息。

在 /etc/profile文件里設置HISTSIZE參數值,這個值限制了用戶操作記錄最多保存多少份,也就是在用戶家目錄的.bash_history文件里多少多少份。
[root@kevin-test ~]# cat /etc/profile|grep "HISTSIZE"
HISTSIZE=1000
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

[root@kevin-test ~]# cat /root/.bash_history |wc -l
1000

[root@kevin-test ~]# history |tail -5     #執行"history"命令讀取的記錄就是從當前用戶家目錄的.bash_history文件中讀取的
 1015  cat /root/.bash_history |wc -l
 1016  cat /etc/profile|grep "HISTSIZE"
 1017  history 
 1018  history |tail -10
 1019  history |tail -5

上面的history執行后沒有顯示執行時間。這里需要注意下:
默認情況下,history並不記錄命令的執行時間,分析起來很困難。我們可以使用HISTTIMEFORMAT在歷史中顯示TIMESTAMP。

[root@kevin-test ~]# echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
[root@kevin-test ~]# source /etc/profile

[root@kevin-test ~]# history |tail -5        #相當於"history 5"
  995  2019-11-29 11:20:20 root source /etc/profile
  996  2019-11-29 11:20:22 root history 
  997  2019-11-29 11:20:48 root ping 172.20.17.6
  998  2019-11-29 11:20:50 root du -sh *
  999  2019-11-29 11:21:27 root cd /data/www/

====================================================
查看歷史執行記錄
[root@kevin-test ~]# history #查看歷史執行記錄

查看歷史執行記錄后 5 條
[root@kevin-test ~]# history 5  #查看歷史執行記錄后 5 條

使用! 執行歷史命令。
! number 執行第幾條命令
!! 執行上一條

[root@kevin-test ~]# !10 #執行歷史記錄第10條命令

[root@kevin-test ~]# !! #執行上一條命令 

另外注意:
bash執行命令時不是馬上把命令名稱寫入history文件的,而是存放在內部的buffer中,等bash退出時會一並寫入。
不過,可以調用"history -w"命令要求bash立即更新history文件。

[root@kevin-test ~]# history -w     #立即更新history文件,將當前bash命令記錄進去。
[root@kevin-test ~]# history -c     #立即清空history當前歷史記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM