Linux 시스템이 얼마나 오래 설치되었는지 어떻게 알 수 있습니까?


97

아무도 그것을 숨기려고하지 않았다면 리눅스 시스템이 처음 설치된 이후의 시간을 어떻게 알 수 있습니까?


나이는 무엇을 의미합니까?
Let_Me_Be

@하자 : 설정된 이후의 시간.

1
@하자 : "/ some / oscure / file의 타임 스탬프를 확인하십시오. 이것은 절대 수정되지 않습니다"라는 라인을 따라 답을 기대하고있었습니다. 그 대답을 해주세요.

2
[Theseus 'ship] (en.wikipedia.org/wiki/Ship_of_Theseus)의 나이를 묻는 것과 같은 것이 아닌가?
Tobu

2
리눅스 설치의 모든 부분이 수년에 걸쳐 교체되었을 때 여전히 동일한 설치입니까? (모든 부품이 천천히 교체 된 선박의 원래 비유와 동일) 루트 파티션이 디스크와 파일 시스템을 변경했으며 홈 파티션이 이전 버전보다 오래 되었기 때문에 묻습니다. 일부 어플라이언스는 골드 이미지로 한 번 준비된 후 배치시 사용자 정의 호스트 이름, ssh 호스트 키 및 fs uuid를 얻습니다. 턴키 리눅스 계보와 같이 골드 이미지를 수정하고 다시 고정 할 수 있습니다.
Tobu

답변:


99
tune2fs -l /dev/sda1 **OR** /dev/sdb1*  | grep 'Filesystem created:'

파일 시스템이 생성 된 시점을 알려줍니다.

* = 첫 번째 열 df /에서 사용할 정확한 파티션을 찾을 수 있습니다.


4
일반적으로 /dev/sda1또는 이와 비슷한 것 ( df /첫 번째 열에 표시되는 것)이지만 원칙은 소리입니다.
Gilles

1
알기 편리합니다. 감사합니다. 그리고이 정보는 파일 시스템을 복사해도 그대로 유지됩니다. +1.
Faheem Mitha

4
해결책은 좋지만 파일 시스템에 따라 다르며 루트 권한이 필요합니다.
golem 2016 년

7
+1. 그러나 현재 데스크탑은 1994 년경에 만들어졌습니다. 그 이후로 디스크와 파일 시스템 유형을 포함하여 그에 관한 모든 것이 여러 번 바뀌었지만 여전히 동일한 시스템입니다. 이 방법은 기껏해야 새로운 파일 시스템으로 가장 최근에 이동 한 날짜 만 알려줍니다.
cas

이것은 내가 사용하지 않는 ext2 (최대 ext4?)에서만 작동하기 때문에 허용되는 대답이 아닙니다.
soger

23

dumpe2fs를 사용하여 루트 파일 시스템의 날짜를 확인하십시오. 나는 그것이 당신이 찾고있는 날짜가 아닌 다른 방법이 될 수 있다고 생각할 수 없습니다.

dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'

1
... 또는tune2fs -l
forcefsck

2
이것이 ext2 / ext3 / ext4 파일 시스템에만 적용된다는 것을 언급하지 않았습니다.
Let_Me_Be

하드 드라이브를 업그레이드하고 설치를 복사 한 여러 컴퓨터에서 잘못된 날짜가 표시됩니다.
derobert

1
@derobert, OP 질문에 여전히 대답이 정확하다고 생각합니다. 새 디스크는 새 RAM과 다르지 않습니다. 새 디스크를
넣었

@pboin 아니요, 설치를 복사 할 때 더 큰 디스크이므로 파티션과 mkfs를 다시 복사합니다 (그런 다음 dd가 아닌 tar / cp를 사용하여 복사하십시오). 다른 파일 시스템 일 수도 있습니다 (예 : ext2-> ext3-> ext4) 따라서 설치를 복사 한 시간을 얻게됩니다. 그것이 OP가 찾고있는 날짜가 아닌 다른 방법 일 수 있습니다.
derobert

16

몇 날짜가 누워있다.

  • 모든 파일에는 날짜가 있습니다.
  • 로그 파일에는 날짜가 있습니다.

데비안 또는 우분투와 그 파생물에서 /var/log/installer/syslog정답이 있는지 확인하십시오.

그러나 이것이 보장되지는 않습니다. (작동하지 않을 수있는 몇 가지 이유는 다른 답변 / 설명을 참조하십시오.)


이것은 데비안 / 우분투에만 해당 될 수 있습니다.
Faheem Mitha

@Faheem Mitha : 동일한 파일 / 디렉토리가 Ubuntu에 사용됩니다.
BillThor

1
@Bill : 예, 데비안 / 우분투에만 해당됩니다. 레시피는 데비안과 우분투 모두에서 작동하지만 다른 (데비안 기반이 아닌) Linux 배포판에서는 작동하지 않을 것입니다.
Faheem Mitha

그러나 모든 파일에 생성 날짜가있는 것은 아닙니다. AFAIK 생년월일은 ext4에서만 소개되었으며 POSIX는 아닙니다.
Konrad Gajewski

@KonradGajewski 그러나이 답변 또는 그 의견 중 하나는 파일 작성 날짜를 언급합니다.
ctrl-alt-delor

12

Red Hat 기반 배포판 (예 : CentOS, Scientific, Oracle 등)에서 다음을 사용할 수 있습니다.

rpm -qi basesystem
Name        : basesystem
Version     : 10.0
Release     : 7.el7
Architecture: noarch
Install Date: Mon 02 May 2016 19:20:58 BST
Group       : System Environment/Base
Size        : 0
License     : Public Domain
Signature   : RSA/SHA256, Tue 01 Apr 2014 14:23:16 BST, Key ID     199e2f91fd431d51
Source RPM  : basesystem-10.0-7.el7.src.rpm
Build Date  : Fri 27 Dec 2013 17:22:15 GMT
Build Host  : ppc-015.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor      : Red Hat, Inc.
Summary     : The skeleton package which defines a simple Red Hat Enterprise Linux system
Description :
Basesystem defines the components of a basic Red Hat Enterprise Linux
system (for example, the package installation order to use during
bootstrapping). Basesystem should be in every installation of a system,
and it should never be removed.

또는

rpm -q basesystem --qf '%{installtime:date}\n'
Mon 02 May 2016 19:20:58 BST

1
올 어떻게 rpm -qi저를주는 Install Date: Mon 07 Jul 2014 03:20:44 PM UTC반면,이 tune2fs말한다 Filesystem created: Sat Dec 20 23:41:41 2014?
Benjamin

내 Azure의 VM에서 모든 시간이 동일하므로 rpm이 전혀 신뢰할 수 없습니다.
Chris

10

파일 시스템 및 배포에 가장 중립적 인 솔루션은 내가 제공 할 수있는 가장 오래된 파일을 사용 ls -lact /etc하여 생성 시간 동안 각 파일의 메타 데이터를 보는 것입니다. 게임을 할 수는 있지만 touch아카이브를 추출하여 생성 된 파일 (예 : tar -p타임 스탬프 유지)의 영향을받지 않습니다 .

디렉토리 내용이 변경되면 작성 시간 메타 데이터 변경 되므로 디렉토리보다는 파일을 보는 것이 가장 좋습니다. 아마도 누군가 왜 그 이유를 밝힐 수 있습니까?)

ls -lact --full-time /etc |tail

GNU Coreutils 가 없는 시스템 은 --full-time옵션을 제거해야합니다 (정렬 순서는 여전히 정확하며 여전히 하루를 얻을 수 있습니다). 파일 메타 데이터에서 생성 시간을 얻을 수 있습니다 stat FILE |grep Change(로 표시된 가장 오래된 파일에서 실행 ls -lact).

Linux 이외의 다른 시스템에서는 stat해당 정보가 약간 다른 배열로되어있을 수 있으므로 다른 플래그가 필요할 수 있습니다. 이것은 여전히 ​​파일의 메타 데이터를 사용하며 정확성은 보장되지 않습니다.

또한 statGNU Coreutils의 "Birth"시간은 틀린 경향이 있습니다 ( ext4 가있는 Linux는 0알 수 없음을 나타내며, UFS를 사용 하는 FreeBSD 는 내가 쿼리 한 시스템보다 "Birth"시간이 더 길었습니다). 올바른 값은 "변경"시간으로 표시되었습니다.

당신이 공상 얻고 싶어하면 바로 가장 오래된 파일의 생성 시간 /etc:

ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'

이 명령은 오래된 FreeBSD 시스템 (UFS, GNU utils 없음)에서 저에게 효과적이었습니다.

stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'

(예, 이것은 파싱 ls하고 금기 사항이지만에는 파일 이름이 잘못되어서는 안됩니다 /etc.)

stat다른 시간 형식을 얻는 데 사용할 수도 있습니다. 예를 들어 Unix epoch 에서 생성 시간을 얻으려면 : stat -c %Z FILE(GNU의 경우 %Z"마지막 상태 변경 시간"이지만 위에서 언급 한 것처럼 Linux 및 BSD 시스템에 올바른 플래그입니다. %W"파일 생성 시간" ) 또는 stat -f %c FILE(BSD 사용).


6

Fedora에서 anaconda 설치 관리자는 설치의 구성 세부 정보를 루트의 홈 폴더에 저장하므로 아이디어를 얻을 수 있습니다.

데비안 (최소한 최신 로그)에서는 설치의 여러 로그가에 저장됩니다 /var/log/installer/. 이전 버전은에 저장했습니다 /var/log/installer.*. 적어도 2003 년으로 거슬러 올라갑니다.


4

OP에서 요청한대로.

시스템을 설치할 때 시간을 찾고 있다면이를 확인할 수있는 방법이 없습니다. 하나는 시스템이 복제되어 (설치되지 않은) 파일 생성 시간을 효과적으로 가짜로 만드는 것일 수 있습니다.

가장 오래된 파일을 검색하여 나이를 추정 할 수 있습니다.


mattdm이 옳습니다. 액세스 시간, 수정 시간 및 변경 시간을 얻을 수 있습니다. ctime이 마지막입니다. 이 SO post
Michael Mrozek


2

/ boot에서 가장 오래된 파일 ( "ls -ltr / boot"의 맨 위를 보았습니다. 첫 번째 설치에서 원래 부트 섹터가있는 경우가 종종 있습니다. 가장 오래된 시스템의 경우 모든 파일을 교체했지만 원래 설치 날짜가 표시됩니다. 기계와 파일 시스템의 내용을 몇 번 정도 복사했습니다. :)


2

나는 비슷한 도구를 찾고 있었고, 가장 좋은 것은 ls -lAhF /etc/hostname단순히 호스트 이름 파일의 나이였습니다. 일반적으로 시스템의 호스트 이름은 처음에 설정되어 있으며 시스템 수명 동안 변경되지 않은 상태로 남아 있다고 생각합니다. 파일 시스템 생성 날짜는 특히 유용하지만 오해의 소지가 있습니다. 예를 들어, 종종 얼마 전에 설치 한 가상 머신 이미지를 사용하여 복사하고 호스트 이름을 변경하고 새 서버를 만듭니다. 따라서, 내 경우에는 /etc/hostname보다 더 나은 표시이다tune2fs -l /dev/sda1


1

설치 중 LVM을 사용한 경우 설치 일에 완료된 논리 볼륨의 작성 날짜를 확인할 수 있습니다 (예 :

$ sudo lvdisplay /dev/mapper/KUbuntu_VG-rootFS | grep Creation
  LV Creation host, time kubuntu, 2014-12-28 20:52:15 +0100

0

ls -alct /root -> 루트 홈 디렉토리는 설치시 작성됩니다


1
그러나 나중에 변경되었을 수 있습니다. /커널이에 보관되어 있지 않으면 시간 이 약간 변경 될 가능성이 적지 /만 여전히 좋은 지표는 아닙니다. (알림 : -c생성 시간이 아니라 메타 데이터 변경 시간입니다. 대부분의 유닉스 파일 시스템은 파일의 생성 시간을 저장하지 않습니다.)
Gilles

변경할 수없는 시간을 보여주십시오 :)
jet

그 질문에는“아무도 그것을 숨기려고하지 않았다”는 가정이 있었다. ctime은 /root자연스럽게 변경 될 수 있습니다 (예 : 누군가 파일을 만들 때마다).
Gilles

0

얼마 전부터, 나는 보통 리눅스 배포판이 Tuptime 이라는 패키지를 배포하는 시간을 설치합니다.이 패키지 는 실행 시간, 시작, 종료에 대한 유용한 통계를 유지합니다 ...

질문에 대해서는 "시스템 수명"줄에 해당 정보가 있습니다. 예를 들어 :

System startups:    110   since   10:15:27 08/08/15
System shutdowns:   107 ok   -   2 bad
System uptime:      4.04 %   -   1 days, 22 hours, 4 minutes and 44 seconds
System downtime:    95.96 %   -   45 days, 13 hours, 57 minutes and 30 seconds
System life:        47 days, 12 hours, 2 minutes and 15 seconds

Largest uptime:     2 hours, 10 minutes and 44 seconds   from   20:49:17 09/08/15
Shortest uptime:    9 seconds   from   10:23:36 08/08/15
Average uptime:     25 minutes and 8 seconds

Largest downtime:   7 days, 10 hours, 17 minutes and 26 seconds   from   06:09:45 10/08/15
Shortest downtime:  15 seconds   from   19:27:24 19/09/15
Average downtime:   9 hours, 56 minutes and 42 seconds

Current uptime:     23 minutes and 33 seconds   since   21:54:09 24/09/15

추가 정보 : https://github.com/rfrail3/tuptime/


0

이것은 다른 방법입니다

# rpm -q -last basesystem
basesystem-10.0-7.el7.noarch                  Tue 11 Jul 2017 03:57:52 PM UTC

-4

간단한 파일을 찾았습니다. 이름은 "1"입니다. 아마도 첫 번째 파일 일 것입니다.

▶ ls -lact --full-time /1
-rw-r--r--. 1 root root 0 2017-03-23 12:02:46.880994133 +0800 /1

왜 공감해야합니까? 이번에는 실제로 마지막 시스템 설치 시간을 지적합니다.
utopic eexpress

Linux에이 파일이 없습니다.
Kevin Lemaire
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.