Tarefa cron semanal para salvar lista de pacotes instalados

2

Estou tendo problemas para descobrir como configurar meu primeiro trabalho no cron. Eu simplesmente quero executar este comando uma vez por semana:

dpkg -l > ~/Dropbox/installed_packages

Meu arquivo /etc/crontab contém a linha

7 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

Então eu preciso colocar meu comando em algum lugar no diretório /etc/cron.weekly - mas em qual arquivo? /etc/cron.weekly atualmente contém os seguintes arquivos:

apt-xapian-index  man-db  0anacron  cvs
    
por Internet man 20.08.2010 / 00:47

3 respostas

6

Crie um arquivo com o seguinte conteúdo (por exemplo, list_packages.sh ):

#!/bin/bash

dpkg -l > ~/Dropbox/installed_packages

Coloque este arquivo em /etc/cron.weekly/ e ele será executado uma vez por semana.

    
por 20.08.2010 / 01:20
2

Guarde isto como um script, diga installed_packages_list.sh :

#!/bin/bash
dpkg -l > ~/Dropbox/installed_packages

Torne-o executável.

chmod u+x installed_packages_list.sh

Em seguida, execute

crontab -e

Isso abrirá um arquivo em um editor de texto. Digite isto e salve

@weekly /full/path/to/script

O script será executado uma vez por semana, com privilégios do usuário que agendou o cron job.

    
por 20.08.2010 / 02:11
0

Primeiro, para fazer isso, você não precisa executar o trabalho como superusuário.

A maneira mais fácil de resolver isso é editar o crontab do seu usuário normal via

crontab -e

Dependendo da sua variável de ambiente EDITOR, o crontab dos usuários é aberto com o seu editor de texto favorito.

Lá você pode adicionar algo como

# m h dom mon dow command
5 12 * * 1 bash $HOME/pkg.backup.sh

Você tem que criar o arquivo pkg.backup.sh com seu comando dpkg.

Btw, se você quiser poder restaurar facilmente o estado do seu pacote atual da máquina (também conhecida como seleção de pacotes), então esta linha de comando é mais orientada para o alvo:

dpkg --get-selections > foo

Para restaurá-lo, você só precisa digitar

dpkg --set-seclections < foo

Na verdade, o dpkg -l é útil para além disso, se você quiser também registrar o número exato da versão do pacote.

    
por 23.08.2010 / 14:42

Tags