我正在尝试确定补丁级别以及某些 Solaris 计算机多久没有打补丁,以便支持对首先要打补丁的系统进行分类。如何确定 Solaris 计算机上次打补丁的时间?
答案1
好吧,不知道有什么好的直接方法,但这些可能会有帮助。'showrev -p' 将告诉您所有已安装的补丁。我猜 /var/sadm/pkg 中的日期应该是上次修改(或修补)软件包时的日期。
答案2
我不知道如何确定 Solaris 机器上次打补丁的时间,但你可以用 showrev -p 计算出补丁级别
答案3
我同意上述 showrev -p 的评论,并补充说 uname -a 获取内核版本对于提供总体情况也很有用。
答案4
为了确定 Solaris(10)系统没有修补的时间,我远程检查了以下内容(从 Linux 系统,因为 GNUdate
很方便)。
1)远程获取目录中最新内容的日期/时间patch
;
(选项解释见下文ls
)
ls -terd /var/sadm/patch/* | tail -1 | awk '{print $6,$7,$9,$8 }'
注意;该awk
命令以以下格式打印日期MMM DD YYYY HH:mm:ss
;
Jan 28 2017 01:48:14
2)$days_since
用计算days_since{}
(这在 中有效ksh
,在 中可能有效bash
);
function days_since {
d2=$(date -d "$1" +%s)
d1=$(date -d now +%s)
echo $(( (d1 - d2) / 86400 ))
}
现在我们知道 Solaris 10 系统已经 192 天没有打过补丁了!:)
Solaris 10ls
命令的快速参考;
-t Sorts by time stamp (latest first) instead of
by name. The default is the last modification
time. (See -u and -c.
-e The same as -l, except displays time to the
second, and with one format for all files
regardless of age: mmm dd hh:mm:ss yyyy.
-r Reverses the order of sort to get reverse
alphabetic or oldest first as appropriate.
-d If an argument is a directory, lists only its
name (not its contents). Often used with -l to
get the status of a directory.