我有一個命令來獲取虛擬服務器的創建日期,從行獲取資訊
Created: Mon Mar 28 07:19:50 UTC 2022 (3 weeks ago):
root@hcloud-admin:/home/scripts# hcloud server describe Miguel-Zabbix-hel1-dc2 | awk 'NR == 4' | awk -F " " '{ print $2, $3, $4 }'
輸出:
Mon Mar 28
hcloud并且還使用CLI從我的服務器主機獲取日期:
root@hcloud-admin:/home/scripts# date "%a %b %d"
Fri Apr 22
你能幫忙嗎,這是否可以使用 比較這兩個日期bash script,以確定服務器創建后是否已經 10 天?
如果過了 10 天,我想hcloud server poweroof Miguel-Zabbix-hel1-dc2在 bash 腳本中使用命令。
完整輸出:
root@hcloud-admin:/home/scripts# hcloud server describe Miguel-Zabbix-hel1-dc2
ID: 191220000
Name: Miguel-Zabbix-hel1-dc2
Status: running
Created: Mon Mar 28 07:19:50 UTC 2022 (3 weeks ago)
Server Type: cpx11 (ID: 22)
ID: 22
Name: cpx11
Description: CPX 11
Cores: 2
Memory: 2 GB
Disk: 40 GB
Storage Type: local
Public Net:
IPv4:
IP: 11.111.111.111
Blocked: no
DNS: static.111.111.111.111.clients.your-server.de
IPv6:
IP: 0a99:4f9:p099:0d0b::/555
Blocked: no
Floating IPs:
No Floating IPs
Private Net:
No Private Networks
Volumes:
No Volumes
Image:
ID: 15512600
Type: system
Status: available
Name: ubuntu-20.04
Description: Ubuntu 20.04
Image size: -
Disk size: 5 GB
Created: Thu Apr 23 17:55:14 UTC 2020 (2 years ago)
OS flavor: ubuntu
OS version: 20.04
Rapid deploy: yes
Datacenter:
ID: 3
Name: hel1-dc2
Description: Helsinki 1 DC 2
Location:
Name: hel1
Description: Helsinki DC Park 1
Country: FI
City: Helsinki
Latitude: 60.169855
Longitude: 24.938379
Traffic:
Outgoing: 208 MB
Ingoing: 280 MB
Included: 22 TB
Backup Window: Backups disabled
Rescue System: disabled
ISO:
No ISO attached
Protection:
Delete: no
Rebuild: no
Labels:
Name: Zabbix
uj5u.com熱心網友回復:
是的。這個有可能。訣竅是將兩個日期/時間字串轉換為“自紀元以來的秒數”格式(日期 %s),然后比較結果。在現代版本的 Linux 上,'date' 命令可以解釋幾乎任何格式合理的日期字串并將其轉換為各種格式:
date_1=$(hcloud server describe Miguel-Zabbix-hel1-dc2 | sed -n 's/^Created:\([^(]*\).*$/\1/p')
seconds_1=$(date -s "${date_1}" %s)
seconds_2=$(date %s)
day_diff=$(((seconds_2 - seconds_1)/86400)) # Number of seconds in a day = 86,400.
請注意,$((...)) 構造僅執行整數運算,并且會向下舍入,因此您可能需要調整演算法以滿足您的確切需求。此外,這個簡單的計算不考慮任何日期計算的細微差別,如夏令時或閏秒等。但對于您的情況,我懷疑這些是否非常重要。
另外,請注意我使用sed而不是awk. sed對于這種型別的作業來說更簡潔,但可能有點復雜,所以我會為你分解 -n 's/^Created:\([^(]*\).*$/\1/p'引數:
-n:默認情況下不列印每一行。s/pat/rep/p: 如果pat在當前行找到,替換為rep并列印。
在我們的例子中,pat是:
^Created:: 行首 (^),后跟確切的字串 'Created:',\(: 開始記住接下來的內容,[^(]*: 字串 '(' 中不是 (^) 的任何字符 ([...]),重復 0 次或更多次 (*),\): 別想了.*$: 任何單個字符 (.) 重復 0 次或更多次,然后是行尾 ($)。
并且rep是
\1: 記住的第一件事(即Created:之前和之后的所有內容()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/464726.html
