關於擷取遠程伺服器上虛擬機器的開機時間

來源:互聯網
上載者:User
由於最近工作需要,研究了如何在本地獲得遠程伺服器上虛擬機器開機時間的擷取。
首先的思路是想用libvirt的virsh命令來取,但是看了一邊它的API,沒有相應的命令可用。
於是轉換思路,考慮linux系統中會有記錄系統檔案的日誌,打算從此處入手,發現存放記錄系統時間的目錄為/var/log/wtmp.用last -f wtmp 可以查看到時間如下:
    pts/9        :0.0             Wed Aug 10 13:43   still logged in   
    pts/4        :0.0             Wed Aug 10 13:30   still logged in   
    pts/8        :0.0             Wed Aug 10 11:08 - 13:28  (02:20)    
    pts/7        :0.0             Wed Aug 10 09:35 - 10:55  (01:19)    
    pts/6        :0.0             Wed Aug 10 09:32 - 12:46  (03:13)    
    pts/5        :0.0             Wed Aug 10 09:24 - 11:26  (02:02)    
    pts/0        :0.0             Wed Aug 10 09:09 - 14:49  (05:39)    
    tty1         :0               Wed Aug 10 08:59   still logged in   
 reboot system boot  2.6.35.6-45.fc14 Wed Aug 10 08:58 - 15:25  (06:26)    
    pts/6        :0.0             Tue Aug  9 19:17 - 19:42  (00:25)    
    pts/5        :0.0             Tue Aug  9 18:43 - 19:42  (00:59)    
    pts/0        :0.0             Tue Aug  9 18:28 - 19:42  (01:13)    
    tty1         :0               Tue Aug  9 18:28 - down   (01:14)    
reboot   system boot  2.6.35.6-45.fc14 Tue Aug  9 18:28 - 19:43  (01:15)    
    pts/0        :0.0             Tue Aug  9 18:10 - 18:21  (00:10)    
    tty1         :0               Tue Aug  9 18:10 - down   (00:11)    
reboot   system boot  2.6.35.6-45.fc14 Tue Aug  9 18:10 - 18:21  (00:11)    
    pts/10       :0.0             Tue Aug  9 16:22 - 17:56  (01:34)    
    pts/8        :0.0             Tue Aug  9 15:08 - 17:57  (02:48)    
    pts/7        :0.0             Tue Aug  9 15:07 - 15:08  (00:01)    
    pts/6        :0.0             Tue Aug  9 10:41 - 15:07  (04:25)    
    pts/5        :0.0             Tue Aug  9 10:41 - 10:41  (00:00)    
    pts/4        :0.0             Tue Aug  9 10:39 - 10:41  (00:01)    
    pts/0        :0.0             Tue Aug  9 09:24 - 17:57  (08:32)    

可以顯示十幾天的時間記錄。但是這裡有個問題,該檔案下記錄的所有時間裡並不包括虛擬機器的。不過問題已有端倪。這裡pts從0開始,並且每記錄一個裝置時間就依次加一,可以看到pts並不是從0依次到最大,而是中間有間斷,於是考慮到缺少的pts號即為虛擬機器的pts。
繼續用virsh命令來尋找相關協助,通過virsh dumpxml vmname查看虛擬機器設定的xml檔案,終於發現存放記錄虛擬機器時間的檔案位置,XML文檔部分內容:
<console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
tty的屬性值即為所需,並且/dev/pts/* 隨著虛擬機器的開機而建立,關機而銷毀。用stat 命令可以取得相關資訊

[root@nicai pts]# stat 1
  File: `1'
  Size: 0             Blocks: 0          IO Block: 1024   character special file
Device: ah/10d    Inode: 4           Links: 1     Device type: 88,1
Access: (0620/crw--w----)  Uid: (  107/    qemu)   Gid: (    5/     tty)
Access: 2011-08-10 08:58:38.178742005 +0800
Modify: 2011-08-10 08:58:38.178742005 +0800
Change: 2011-08-10 08:58:38.178742005 +0800
 
stat -t  name 可以取到轉換成秒的時間。到這裡,又一個問題產成了,取到的時間並沒有檔案建立的時間,只有Access、Modify、Change三個時間,建立時間是linux系統裡所未提供的,但是如果不對檔案修改,建立時間=修改時間。通過在虛擬機器上進行操作驗證,發現/dev/pts/*的檔案如果不是人為修改,它所記錄的Modify是不會發生變化的 ,也就是虛擬機器的開機時間。

解決完一個問題的感覺非常好,這裡記錄一下過程,同時也希望能給其他人一些協助,如果有什麼不足之處也望大家指出,歡迎鮮花和磚頭!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.