Como posso obter todos os comandos 'apt-get' que eu publiquei desde que iniciei um servidor Debian?

2

Eu preciso voltar ao básico em um VPS, mas não quero limpá-lo.

Eu entendo que o Debian armazena os comandos apt-get em algum lugar, mas estes são separados em arquivos de log separados.

É possível juntar tudo isso para obter uma lista completa de todos os comandos apt-get que eu emiti (basicamente para que eu possa reverter isso)?

Estou procurando esta saída:

$ 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
    
por Jack 11.06.2015 / 11:02

4 respostas

0

Ir para /var/log/apt/

Lá você encontrará o log atual em term.log e history.log contanto que tenha .gz . arquivos dos últimos meses.

gunzip todos os arquivos history.log e, em seguida, execute esta linha:

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

No arquivo all_apt-get-commands.txt , você encontrará a lista de todos os comandos.

    
por 11.06.2015 / 11:08
0

Um acréscimo à solução do @jcbermu.

Você pode usar zgrep diretamente em arquivos não compactados e compactados com gzip, o que simplifica o comando completo, incluindo gunzipping, em uma única linha:

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

history.log* em vez de history.log.* é usado para que o history.log atual também seja incluído.

Para obter linhas exclusivas, canalize-as em uniq . Para obter linhas contendo apenas apt-get chamadas, canalize-as para grep ^apt-get .

    
por 11.06.2015 / 11:32
0

Como mencionado em outras postagens, você precisa procurar em /var/log/apt . Para conseguir o que você quer, você pode tentar seguir:

>| 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;

Arquivo out.log deve conter seus comandos ordenados por data

    
por 11.06.2015 / 12:48
0

Você pode obter um login em /var/log/apt/history.log* . Os logs são rotacionados regularmente, portanto, logs mais antigos podem não estar mais presentes. Uma vez que esses logs acabaram, não há nada semelhante. Se você já teve seu VPS por um tempo, provavelmente não será capaz de descobrir o que havia inicialmente.

Não há sentido em desinstalar pacotes, a menos que você tenha pouco espaço em disco. Se esse é o problema, procure pacotes grandes que você não precisa. O comando a seguir lista os pacotes instalados aumentando o tamanho:

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

Se você quiser saber a configuração inicial desse VPS, pergunte nos fóruns do provedor de hospedagem, provavelmente alguém poderá lhe dizer.

Se você quiser ir para um sistema mínimo para fins de aprendizado, esteja ciente de que não aprenderá muito; mas um bom ponto de partida seria desinstalar todos os pacotes cuja prioridade é obrigatório ou importante. Isso é mais fácil de fazer com aptitude : limit ( l ) a visão de pacotes não obrigatórios / importantes com o termo de pesquisa ~pstandard | ~poptional | ~pextra e desinstale-os, exceto os que você realmente precisa. Certifique-se de manter alguns pacotes críticos como sudo e openssh-server ou você tornará o VPS inutilizável. Esses experimentos são feitos melhor em uma máquina virtual, para que você tenha uma maneira de repará-lo ou iniciá-lo novamente se você o quebrar.

    
por 12.06.2015 / 02:51