Linux課程第八天學習筆記

####################3.日誌分析工具journal####################
systemd-journald            ##進程名稱

####################
[root@localhost ~]# cd /root/Desktop/
[root@localhost Desktop]# ps aux |grep journald
root       365  0.2  0.2  41164  2608 ?        Ss   21:29   0:00 /usr/lib/systemd/systemd-journald
root      2953  0.0  0.0 112644   948 pts/1    S+   21:36   0:00 grep --color=auto journald
進程名稱爲"systemd-journald"
####################

journalctl                ##直接執行,瀏覽系統日誌(忽略重啓前的日誌信息)
journalctl -n 3                ##顯示最新3條
journalctl -p err            ##顯示報錯
journalctl -f                ##監控日誌,類似於"tail -f /var/log/messages"
journalctl --since --until        ##--since "[YYYY-MM-DD] [hh:mm:ss]" 從什麼時間到什麼時間的日誌
journalctl -o verbose            ##顯示日誌能夠使用的詳細進程參數
journalctl _SYSTEMD_UNIT=sshd.service    ##顯示服務名稱爲"sshd.service"的信息
journalctl _PID=1182            ##顯示進程pid爲"1182"的信息
journalctl _UID=0            ##顯示進程uid爲"0"的信息
journalctl _GID=0            ##顯示進程gid爲"0"的信息
journalctl _HOSTNAME=localhost        ##顯示進程所在主機爲"localhost"的信息
journalctl _COMM=sshd            ##顯示命令名稱爲"sshd"的信息

####################
[root@localhost Desktop]# journalctl -n 5
-- Logs begin at Wed 2016-10-19 22:03:05 EDT, end at Wed 2016-10-19 22:05:40 EDT
Oct 19 22:05:40 localhost sshd[1670]: Received signal 15; terminating.
Oct 19 22:05:40 localhost systemd[1]: Starting OpenSSH server daemon...
Oct 19 22:05:40 localhost systemd[1]: Started OpenSSH server daemon.
Oct 19 22:05:40 localhost sshd[1678]: Server listening on 0.0.0.0 port 22.
Oct 19 22:05:40 localhost sshd[1678]: Server listening on :: port 22.
ines 1-6/6 (END)
[root@localhost Desktop]# journalctl -p err
-- Logs begin at Wed 2016-10-19 22:03:05 EDT, end at Wed 2016-10-19 22:05:40 EDT
Oct 19 22:03:05 localhost kernel: Failed to access perfctr msr (MSR c1 is 0)
Oct 19 22:03:06 localhost rpcbind[169]: rpcbind terminating on signal. Restart w
Oct 19 22:03:10 localhost smartd[505]: Problem creating device name scan list
Oct 19 22:03:10 localhost smartd[505]: In the system's table of devices NO devic
Oct 19 22:03:16 localhost systemd[1]: Failed to start LSB: Starts the Spacewalk
Oct 19 22:03:16 localhost systemd[1]: Failed to start /etc/rc.d/rc.local Compati
Oct 19 22:03:17 localhost libvirtd[1221]: libvirt version: 1.1.1, package: 29.el
Oct 19 22:03:17 localhost libvirtd[1221]: Module /usr/lib64/libvirt/connection-d
lines 1-9/9 (END)
[root@localhost Desktop]# journalctl -f            ##列出最新10條記錄,並持續監控
-- Logs begin at Wed 2016-10-19 22:03:05 EDT. --
Oct 19 22:11:10 localhost sshd[2758]: Server listening on :: port 22.
Oct 19 22:11:44 localhost systemd[1]: Stopping System Logging Service...
Oct 19 22:11:44 localhost systemd[1]: Starting System Logging Service...
Oct 19 22:11:44 localhost systemd[1]: Started System Logging Service.
Oct 19 22:12:04 localhost systemd[1]: Stopping OpenSSH server daemon...
Oct 19 22:12:04 localhost sshd[2758]: Received signal 15; terminating.
Oct 19 22:12:04 localhost systemd[1]: Starting OpenSSH server daemon...
Oct 19 22:12:04 localhost systemd[1]: Started OpenSSH server daemon.
Oct 19 22:12:04 localhost sshd[2804]: Server listening on 0.0.0.0 port 22.
Oct 19 22:12:04 localhost sshd[2804]: Server listening on :: port 22.
>>>>>持續監控>>>>>
[root@localhost Desktop]# journalctl --since "2016-10-19 22:12:00" --until "2016-10-19 22:13:00"
-- Logs begin at Wed 2016-10-19 22:03:05 EDT, end at Wed 2016-10-19 22:20:01 EDT
Oct 19 22:12:04 localhost systemd[1]: Stopping OpenSSH server daemon...
Oct 19 22:12:04 localhost sshd[2758]: Received signal 15; terminating.
Oct 19 22:12:04 localhost systemd[1]: Starting OpenSSH server daemon...
Oct 19 22:12:04 localhost systemd[1]: Started OpenSSH server daemon.
Oct 19 22:12:04 localhost sshd[2804]: Server listening on 0.0.0.0 port 22.
Oct 19 22:12:04 localhost sshd[2804]: Server listening on :: port 22.
lines 1-7/7 (END)
[root@localhost Desktop]# ps aux |grep sshd
root      1379  0.0  0.4 135680  4884 ?        Ss   22:03   0:00 sshd: root@pts/0
root      3025  0.0  0.3  82956  3532 ?        Ss   22:29   0:00 /usr/sbin/sshd -D
root      3112  0.0  0.0 112644   944 pts/0    S+   22:35   0:00 grep --color=auto sshd
[root@localhost Desktop]# systemctl status sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Wed 2016-10-19 22:29:12 EDT; 6min ago
  Process: 3024 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
 Main PID: 3025 (sshd)
   CGroup: /system.slice/sshd.service
           └─3025 /usr/sbin/sshd -D

Oct 19 22:29:12 localhost systemd[1]: Starting OpenSSH server daemon...
Oct 19 22:29:12 localhost systemd[1]: Started OpenSSH server daemon.
Oct 19 22:29:12 localhost sshd[3025]: Server listening on 0.0.0.0 port 22.
Oct 19 22:29:12 localhost sshd[3025]: Server listening on :: port 22.
[root@localhost Desktop]# journalctl -o verbose
------------------------------------------------------------
/3025
按"n"向下查找,可以查找到與"3025"相關的內容
比如:
    MESSAGE=Server listening on :: port 22.
    SYSLOG_PID=3025
    _PID=3025
    _SOURCE_REALTIME_TIMESTAMP=1476930552046485
按"q"退出
------------------------------------------------------------
[root@localhost Desktop]# journalctl _PID=3025 _COMM=sshd _HOSTNAME=localhost
-- Logs begin at Wed 2016-10-19 22:03:05 EDT, end at Wed 2016-10-19 22:50:01 EDT
Oct 19 22:29:12 localhost sshd[3025]: Server listening on 0.0.0.0 port 22.
Oct 19 22:29:12 localhost sshd[3025]: Server listening on :: port 22.
lines 1-3/3 (END)
####################

對systemd-journald管理
##默認情況下此程序會忽略重啓前的日誌信息,如不忽略:
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
killall -1 systemd-journal        ##進程初始化
ls /var/log/journal/4513ad59a3b442ffa4b7ea88343fa55f
system.journal user-1000.journal

####################
com和command的區別:
[root@localhost Desktop]# ps ax -o comm,command | grep journal
systemd-journal /usr/lib/systemd/systemd-journald
grep            grep --color=auto journald
comm = systemd-journal
command = /usr/lib/systemd/systemd-journald

[root@localhost Desktop]# mkdir /var/log/journal
[root@localhost Desktop]# ls -ld /var/log/journal
drwxr-xr-x. 2 root root 6 Oct 17 05:39 /var/log/journal
[root@localhost Desktop]# cat /etc/group | grep journal
systemd-journal:x:190:
[root@localhost Desktop]# chown root:systemd-journal /var/log/journal
[root@localhost Desktop]# chmod 2755 /var/log/journal
[root@localhost Desktop]# ls -ld /var/log/journal
drwxr-sr-x. 2 root systemd-journal 6 Oct 17 05:39 /var/log/journal
[root@localhost Desktop]# killall -1 systemd-journald
[root@localhost Desktop]# date
Mon Oct 17 05:42:57 EDT 2016
[root@localhost Desktop]# ll /var/log/journal
total 0
drwxr-sr-x. 2 root systemd-journal 27 Oct 17 05:42 946cb0e817ea4adb916183df8c4fc817
[root@localhost Desktop]# ls /var/log/journal/946cb0e817ea4adb916183df8c4fc817/
system.journal
[root@localhost Desktop]# reboot
==========等待虛擬機重啓==========
[root@localhost Desktop]# journalctl
-- Logs begin at Mon 2016-10-17 05:42:50 EDT, end at Mon 2016-10-17 05:49:16 EDT
Oct 17 05:42:50 localhost systemd-journal[31294]: Permanent journal is using 8.0
Oct 17 05:42:50 localhost systemd-journal[31294]: Journal started
Oct 17 05:42:50 localhost systemd[1]: Starting Trigger Flushing of Journal to Pe
Oct 17 05:42:50 localhost systemd[1]: systemd-journald.service: main process exi
Oct 17 05:42:50 localhost systemd[1]: Unit systemd-journald.service entered fail
Oct 17 05:42:50 localhost systemd[1]: Started Trigger Flushing of Journal to Per
Oct 17 05:47:01 localhost anacron[2279]: Job `cron.weekly' started
Oct 17 05:47:01 localhost anacron[2279]: Job `cron.weekly' terminated
Oct 17 05:47:27 localhost systemd[1]: Stopping Session 4 of user root.
Oct 17 05:47:27 localhost systemd[1]: Stopping Session 3 of user root.
Oct 17 05:47:27 localhost systemd[1]: Stopping Session 1 of user root.
......
##日誌從05:42:50開始記錄,這個時間是重啓前的時間
[root@localhost Desktop]# ls /var/log/journal/946cb0e817ea4adb916183df8c4fc817/
system.journal  user-42.journal
####################

###############################
#######    15.系統虛擬機管理    #######
###############################

####################
使用虛擬化軟件必須在BIOS裏面打開虛擬化功能
有的主機BIOS裏面不開放虛擬化,也沒有完全虛擬化功能

qemu-kvm    ##虛擬化硬件
qemu-img    ##虛擬化存儲

Linux自帶的虛擬化軟件叫KVM

virt-manager    ##打開虛擬系統管理器
####################

####################
man virt-install
/EXAMPLES
按"n"向下查找,找到如下說明:
       Run a Live CD p_w_picpath under Xen fullyvirt, in diskless environment

         # virt-install \
              --hvm \
              --name demo \
              --memory 500 \
              --disks none \
              --livecd \
              --graphics vnc \
              --cdrom /root/fedora7live.iso            ##需要的信息
####################

####################1.安裝####################
vim vmcreate
----------------------------------------------------------------------
#!/bin/bash                    ##命令運行環境的指定
virt-install \                    ##安裝虛擬機
> --name $1 \                    ##虛擬機名稱指定,$1表示腳本後的第一串字符
> --ram 1000 \                    ##內存
> --file /var/lib/libvirt/p_w_picpaths/$1.img \    ##硬盤文件
> --file-size 8 \                ##硬盤文件大小
> --cdrom /home/kiosk/Desktop/rhel-server-7.1-x86_64-dvd.iso &        ##安裝源指定
----------------------------------------------------------------------
"#!"這個是固定格式
"\"表示換行
"$1"表示腳本後面跟的第一個參數
"&"打入後臺

chmod u+x vmcreate
mv vmcreate /usr/local/bin/
vmcreate hello        ##"hello"是虛擬機名稱,注意:切換到root用戶下執行

實驗發現:
使用命令創建的虛擬機存儲的格式是img
使用virt-manager創建的虛擬機存儲的格式是qcow2

####################2.管理####################
virt-manager            ##開啓圖形管理工具
virt-view vmname        ##顯示虛擬機,vmname表示虛擬機名稱
virsh list            ##列出正在運行的vm
virsh list --all        ##列出所有vm
virsh start vmname        ##運行指定vm
virsh shutdown vmname        ##正常指定關閉vm,可以被忽略(比如開機後沒有登陸,就不能shutdown)
virsh destroy vmname        ##強行結束指定vm,不能被忽略
virsh create vmname.xml        ##臨時恢復指定vm,vmname表示前端管理文件
virsh define vmname.xml        ##永久恢復vm
virsh undefine vmname        ##刪除vm的前端管理,不會刪除存儲

####################
rhel7.1.xml    ##虛擬機前端管理
rhel7.1.img    ##虛擬機存儲

[root@foundation50 Desktop]# ll /etc/libvirt/qemu/
total 24
-rw-------. 1 root root 2488 Oct 17 16:56 desktop.xml
drwx------. 3 root root   40 Sep 11 09:13 networks
-rw-------. 1 root root 4259 Oct 20 15:05 rhel6.5.xml
-rw-------. 1 root root 4263 Oct 20 13:06 rhel7.1.xml
-rw-------. 1 root root 2536 Oct 17 16:55 server.xml
[root@foundation50 Desktop]# cp -p /etc/libvirt/qemu/rhel7.1.xml /mnt/    ##"-p"複製權限
[root@foundation50 Desktop]# ll /mnt
total 28
-rw-r--r--. 1 root root 18928 Sep 17 14:21 foundation-config-7.0-1.r26059.x86_64.rpm
-rw-------. 1 root root  4263 Oct 20 13:06 rhel7.1.xml
[root@foundation50 Desktop]# ls /var/lib/libvirt/p_w_picpaths/    ##"/var"下存放的是系統數據
rh124-desktop-vda.ovl    rh124-desktop-vdb.qcow2  rh124-server-vda.qcow2  rh124-server.xml
rh124-desktop-vda.qcow2  rh124-desktop.xml        rh124-server-vdb.ovl    rhel6.5.qcow2
rh124-desktop-vdb.ovl    rh124-server-vda.ovl     rh124-server-vdb.qcow2  rhel7.1.img
[root@foundation50 Desktop]# mv /var/lib/libvirt/p_w_picpaths/rhel7.1.img /mnt/
[root@foundation50 Desktop]# ls /mnt/
foundation-config-7.0-1.r26059.x86_64.rpm  rhel7.1.img  rhel7.1.xml
[root@foundation50 Desktop]# virt-manager
手動刪除虛擬機"rhel7.1"的前端管理。由於"rhel7.1.img"已經被移走,Storage已經不存在
現在開始恢復:
[root@foundation50 Desktop]# vim /mnt/rhel7.1.xml
------------------------------------------------------------
 41       <source file='/var/lib/libvirt/p_w_picpaths/rhel7.1.img'/>
------------------------------------------------------------
[root@foundation50 Desktop]# mv /mnt/rhel7.1.img /var/lib/libvirt/p_w_picpaths/
[root@foundation50 Desktop]# ls /var/lib/libvirt/p_w_picpaths/
rh124-desktop-vda.ovl    rh124-desktop-vdb.qcow2  rh124-server-vda.qcow2  rh124-server.xml
rh124-desktop-vda.qcow2  rh124-desktop.xml        rh124-server-vdb.ovl    rhel6.5.qcow2
rh124-desktop-vdb.ovl    rh124-server-vda.ovl     rh124-server-vdb.qcow2  rhel7.1.img
[root@foundation50 Desktop]# virsh create /mnt/rhel7.1.xml
Domain rhel7.1 created from /mnt/rhel7.1.xml

[root@foundation50 Desktop]# ls /etc/libvirt/qemu/
desktop.xml  networks  rhel6.5.xml  server.xml            ##只是臨時開啓,並沒有恢復前端管理
[root@foundation50 Desktop]# virsh define /mnt/rhel7.1.xml
Domain rhel7.1 defined from /mnt/rhel7.1.xml

[root@foundation50 Desktop]# ls /etc/libvirt/qemu/
desktop.xml  networks  rhel6.5.xml  rhel7.1.xml  server.xml    ##前端管理已經恢復
[root@foundation50 Desktop]# virsh undefine rhel7.1
Domain rhel7.1 has been undefined

[root@foundation50 Desktop]# ls /etc/libvirt/qemu/
desktop.xml  networks  rhel6.5.xml  server.xml            ##前端管理再次被刪除

如果找不到文件的路徑,可以使用以下命令進行查找:
[root@foundation50 Desktop]# find / -name rhel7.1.xml
/etc/libvirt/qemu/rhel7.1.xml
[root@foundation50 Desktop]# find / -name rhel7.1.img
/var/lib/libvirt/p_w_picpaths/rhel7.1.img
####################

如果前端管理被刪除,光剩下Storage,就只能在管理器裏指定硬盤來恢復
步驟如下:
Create a new virtual machine
-->Import existing disk p_w_picpath-->Forward
-->Provide the existing storage path-->(略)......

####################3.虛擬機快照####################
qemu-img create -f qcow2 -b vm1.qcow2 node1.qcow2    ##創建快照"node1.qcow2"
注意:創建的是快照,而不是複製一個Storage出來

####################
[root@foundation50 Desktop]# cd /var/lib/libvirt/p_w_picpaths/
[root@foundation50 p_w_picpaths]# ls
rh124-desktop-vda.ovl    rh124-desktop.xml       rh124-server-vdb.qcow2
rh124-desktop-vda.qcow2  rh124-server-vda.ovl    rh124-server.xml
rh124-desktop-vdb.ovl    rh124-server-vda.qcow2  rhel6.5.qcow2
rh124-desktop-vdb.qcow2  rh124-server-vdb.ovl    rhel7.1.img
[root@foundation50 p_w_picpaths]# file rhel7.1.img
rhel7.1.img: QEMU QCOW Image (v3), 8589934592 bytes        ##格式"QCOW"即"qcow2"
[root@foundation50 p_w_picpaths]# qemu-img create -f qcow2 -b rhel7.1.img westos.img
Formatting 'westos.img', fmt=qcow2 size=8589934592 backing_file='rhel7.1.img' encryption=off cluster_size=65536 lazy_refcounts=off
[root@foundation50 p_w_picpaths]# ll rhel7.1.img
-rw-------. 1 root root 8591507456 Oct 20 17:43 rhel7.1.img
[root@foundation50 p_w_picpaths]# du -sh rhel7.1.img
3.3G    rhel7.1.img
[root@foundation50 p_w_picpaths]# ll westos.img
-rw-r--r--. 1 root root 197120 Oct 21 09:30 westos.img
[root@foundation50 p_w_picpaths]# du -sh westos.img
196K    westos.img                        ##快照僅196K
[root@foundation50 Desktop]# virt-manager
在管理器裏指定硬盤加載"westos.img"進行開機啓動
[root@foundation50 p_w_picpaths]# du -sh westos.img
4.2M    westos.img
[root@foundation50 p_w_picpaths]# du -sh westos.img
8.2M    westos.img
[root@foundation50 p_w_picpaths]# du -sh westos.img
17M    westos.img                        ##隨着開機的進行,快照越來越大
假如虛擬機出現故障,比如執行如下操作:
rm -fr /etc/
重啓後,發現虛擬機啓不起來
不需要操作前端管理
直接刪除"westos.img",重新創建快照
[root@foundation50 p_w_picpaths]# rm -fr westos.img
[root@foundation50 p_w_picpaths]# qemu-img create -f qcow2 -b rhel7.1.img westos.img
Formatting 'westos.img', fmt=qcow2 size=8589934592 backing_file='rhel7.1.img' encryption=off cluster_size=65536 lazy_refcounts=off

實驗發現:
[root@foundation50 p_w_picpaths]# qemu-img create -f qcow2 -b westos.img linux.img
Formatting 'linux.img', fmt=qcow2 size=8589934592 backing_file='westos.img' encryption=off cluster_size=65536 lazy_refcounts=off
[root@foundation50 p_w_picpaths]# qemu-img create -f qcow2 -b linux.img linux1.img
Formatting 'linux1.img', fmt=qcow2 size=8589934592 backing_file='linux.img' encryption=off cluster_size=65536 lazy_refcounts=off
[root@foundation50 p_w_picpaths]# qemu-img create -f qcow2 -b linux1.img linux2.img
Formatting 'linux2.img', fmt=qcow2 size=8589934592 backing_file='linux1.img' encryption=off cluster_size=65536 lazy_refcounts=off
快照可以創建快照,並且被快照創建出來的快照也可以加載啓動
但是當前一個快照被刪除時,後一個快照就會失效
比如:
[root@foundation50 p_w_picpaths]# rm -fr linux1.img
linux2將不能被加載啓動

編輯腳本:
vim vmctl
----------------------------------------------------------------------
#!/bin/bash
echo poweroff $1 ...
virsh destroy $1 &> /dev/null
echo del $1.xml ...
virsh undefine $1 &> /dev/null
echo create disk ...
qemu-img create -f qcow2 -b /var/lib/libvirt/p_w_picpaths/$1.qcow2 /var/lib/libvirt/p_w_picpaths/$2.qcow2 &> /dev/null
echo create $2 vm ...
virt-install \
--name $2 \
--ram 1000 \
--disk /var/lib/libvirt/p_w_picpaths/$2.qcow2 \
--import &> /dev/null &
echo created $2 successful !!!
----------------------------------------------------------------------
執行腳本"vmctl":
[root@foundation50 雜]# sh vmctl rhel6.5 test
poweroff rhel6.5 ...
del rhel6.5.xml ...
create disk ...
create test vm ...
created test successful !!!
"-x"表示跟蹤腳本的執行:
[root@foundation50 雜]# sh -x vmctl rhel6.5 test
+ echo poweroff rhel6.5 ...
poweroff rhel6.5 ...
+ virsh destroy rhel6.5
+ echo del rhel6.5.xml ...
del rhel6.5.xml ...
+ virsh undefine rhel6.5
+ echo create disk ...
create disk ...
+ qemu-img create -f qcow2 -b /var/lib/libvirt/p_w_picpaths/rhel6.5.qcow2 /var/lib/libvirt/p_w_picpaths/test.qcow2
+ echo create test vm ...
create test vm ...
+ echo created test successful '!!!'
created test successful !!!
+ virt-install --name test --ram 1000 --disk /var/lib/libvirt/p_w_picpaths/test.qcow2 --import
####################
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章