web-dev-qa-db-ja.com

インストールされたパッケージのリストを保存するための毎週のcronジョブ

最初のcronジョブを設定する方法がわかりません。このコマンドを毎週1回実行したいだけです。

dpkg -l > ~/Dropbox/installed_packages

ぼくの /etc/crontabファイルに次の行が含まれています

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

したがって、コマンドをディレクトリ/etc/cron.weeklyのどこかに配置する必要がありますが、どのファイルに配置する必要がありますか? /etc/cron.weekly現在、次のファイルが含まれています。

apt-xapian-index  man-db  0anacron  cvs
2
Internet man

次の内容のファイルを作成します(例:list_packages.sh):

#!/bin/bash

dpkg -l > ~/Dropbox/installed_packages

このファイルを/etc/cron.weekly/に配置すると、週に1回実行されます。

6
David Narayan

これをスクリプトとして保存します。たとえば、installed_packages_list.sh

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

実行可能にします。

chmod u+x installed_packages_list.sh

次に実行します

crontab -e

これにより、テキストエディタでファイルが開きます。これを入力して保存します

@weekly /full/path/to/script

スクリプトは、cronジョブをスケジュールしたユーザーの権限で、週に1回実行されます。

2
qxgzys

まず、これを行うために、スーパーユーザーとしてジョブを実行する必要はありません。

これを解決する最も簡単な方法は、通常のユーザーのcrontabを次の方法で編集することです。

crontab -e

EDITOR環境変数に応じて、ユーザーのcrontabがお気に入りのテキストエディターで開きます。

そこに次のようなものを追加できます

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

次に、dpkgコマンドを含むpkg.backup.shファイルを作成する必要があります。

ところで、マシンの現在のパッケージ状態(別名パッケージ選択)を簡単に復元できるようにしたい場合は、このコマンドラインはよりターゲット指向です。

dpkg --get-selections > foo

復元するには、入力するだけです

dpkg --set-seclections < foo

実際、正確なパッケージのバージョン番号をログに記録したい場合は、それに加えてdpkg-lが役立ちます。

0
maxschlepzig