데비안 서버를 시작한 이후에 실행된 모든 "apt-get" 명령을 어떻게 얻을 수 있나요?

데비안 서버를 시작한 이후에 실행된 모든 "apt-get" 명령을 어떻게 얻을 수 있나요?

VPS의 기본으로 돌아가야 하는데, 다 깨끗하게 지우고 싶지는 않습니다.

apt-get데비안이 명령을 어딘가에 저장한다는 것을 알고 있지만 명령은 별도의 로그 파일로 분리되어 있습니다.

apt-get내가 실행한 모든 명령의 전체 목록을 얻기 위해 이 모든 것을 하나로 묶는 것이 가능합니까 (기본적으로 명령을 되돌릴 수 있도록)?

나는 다음 출력을 찾고 있습니다 :

$ blah

apt-get install libpack-4 libpack-5 libpack-6 libpack-dev
apt-get purge libpack-4
apt-get install blah-1 blah-2
apt-get purge somepack-1 
apt-get install libpack-4 libpack-5 libpack-6 libpack-dev
apt-get purge libpack-4
apt-get install blah-1 blah-2
apt-get purge somepack-1
apt-get install libpack-4 libpack-5 libpack-6 libpack-dev
apt-get purge libpack-4
apt-get install blah-1 blah-2
apt-get purge somepack-1
apt-get install libpack-4 libpack-5 libpack-6 libpack-dev
apt-get purge libpack-4
apt-get install blah-1 blah-2
apt-get purge somepack-1

답변1

가다/var/log/apt/

term.log여기에서 현재 로그인 정보 와 history.log기존 정보를 확인할 수 있습니다 .gz. 지난 몇 달 동안의 문서.

모든history.log 파일을 gunzip한 후 다음 줄을 실행합니다.

cat history.log.* | grep Commandline |awk -F":" '{print $2}'> all_apt-get-commands.txt

이 파일에는 all_apt-get-commands.txt모든 명령 목록이 있습니다.

답변2

@jcbermu의 솔루션에 추가되었습니다.

zgrepgzip을 사용하여 직접 압축 가능그리고압축되지 않은 파일로, 전체 명령(gunzip 포함)이 한 줄로 줄어듭니다.

zgrep CommandLine /var/log/apt/history.log* | cut -d\  -f 2-

history.log*사용되는 것이 아니라 history.log.*전류 history.log도 포함됩니다.

고유한 라인을 얻으려면 파이프하십시오 uniq. apt-get호출만 포함된 행을 얻으려면 해당 행을 로 파이프하십시오 grep ^apt-get.

답변3

다른 게시물에서 언급했듯이 /var/log/apt원하는 효과를 얻으려면 다음을 시도해 보세요.

>| out.log; for i in $(ls -1rt $(find /var/log/apt -name '*history*')); do if [[ $i =~ \.gz$ ]]; then zgrep "Commandline" $i | awk -F': ' '{ print $2; }' >>out.log; else grep "Commandline" $i | awk -F': ' '{ print $2; }' >>out.log; fi done;

out.log 파일에는 날짜별로 정렬된 명령이 포함되어야 합니다.

답변4

로그인 할 수 있습니다 /var/log/apt/history.log*. 로그는 주기적으로 교체되므로 오래된 로그가 더 이상 존재하지 않을 수 있습니다. 이 로그가 사라지면 이와 같은 로그는 없을 것입니다. 한동안 VPS를 사용해 왔다면 처음에는 무엇을 기대해야 할지 모를 수도 있습니다.

디스크 공간이 부족하지 않은 한 패키지를 제거하는 것은 별 의미가 없습니다. 그것이 문제라면 필요하지 않은 큰 패키지를 찾으십시오. 다음 명령은 크기를 늘려 설치된 패키지를 나열합니다.

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

이 VPS의 초기 구성에 대해 알고 싶다면 호스팅 제공업체의 포럼에 문의하세요. 누군가가 알려줄 수도 있습니다.

최소한의 시스템을 사용하여 배우고 싶다면 많은 것을 배울 수는 없지만 모든 패키지를 제거하는 것이 좋은 출발점이라는 점을 기억하십시오.우선순위필요하거나 중요합니다. 이게 제일 쉽네요자격:limit( l) 필요하지 않은/중요한 패키지 보기검색어 ~pstandard | ~poptional | ~pextra꼭 필요한 항목을 제외하고 모두 제거하세요. sudo및 와 같은 일부 주요 패키지를 보관하십시오 openssh-server. 그렇지 않으면 VPS를 사용할 수 없게 됩니다. 이러한 종류의 실험은 가상 머신에서 가장 잘 수행되므로 이를 수정하거나 문제가 발생한 경우 다시 시작할 수 있습니다.

관련 정보