シェルスクリプトと基本アプリケーションの紹介:毎日特定のフォルダを保持するようにコンピュータを設定するにはどうすればよいですか?

シェルスクリプトと基本アプリケーションの紹介:毎日特定のフォルダを保持するようにコンピュータを設定するにはどうすればよいですか?

特定の人に自分のアーカイブアカウントフォルダへのアクセスを許可する必要がある状況が発生しました。これまで、彼らは重要なデータでいっぱいの巨大なフォルダを削除しました。明らかに、彼らのコンピュータ技術には少しの作業が必要です。幸い、Dropboxのウェブサイトに復元機能があります。しかし、GUIはそれほど強力に見えず、これらの人々が何かを永久に削除するのではないかと心配されます。

私はこのフォルダのzipアーカイブを作成し、毎日ローカルコンピュータに保存してきました。 Dropbox Recovery GUIで見つからないファイルを修復しました。

ところで忙しいか怠けて保管を忘れてしまうかと心配になります。それで、基本的なオートメーションシェルスクリプトを学ぶ良い機会だと思いました。

スクリプトを設計する方法

  1. 起動時に実行
  2. 特定のディレクトリのzipアーカイブを作成したいかどうかを確認するように求められます(方法はわかりません)。
  3. これを行い、別の名前で保存してください/path/to/archives/<date>

??

私は現在最低限のbash(cd、、、lsなどssh)しか知っていないので、このようなことをする方法の実際の例は、今後他の有用な同様の仕事をするための足場になるでしょう。

私はThinkpad x230でUbuntuを実行しています。

答え1

使用する必要がありますcrontab

例:

tarBackup.shRun Every Day at 5amという名前のスクリプトが必要な場合は、エントリは次のcrontabようになります。

cronjobまず、次のコマンドを実行してインストールします。

crontab -e

次の項目を追加します。

0 5 * * * xterm -e /path/to/tarbackup.sh

ファイルを保存して閉じます。

あなたのタールバックアップ.sh

tarBackup.sh次の行が必要です。

#!/bin/bash
echo "Do you wan to backup?(yes/no)"
read input
if [ "$input" == "yes" ] 
then
    tar -cvf dir.tar dir1 dir2
else
    echo "K sir,I won't backup anything"
fi

[はい、必要に応じてtarコマンドを編集]

crontabの一般的な構文は次のとおりです。

1 2 3 4 5 /path/to/some/command

どこ

1: Minutes 0-59
2: Hours in 24 hours format
3: Day 0-31
4: Month 0-12
5: Day of the week 0-7
/path/to/some/command - Command or script name to schedule

答え2

なぜ圧縮ファイルをバックアップに使用したいのかわかりません。

rsyncを使用している場合は、新しいファイルと変更されたファイルのみをバックアップできます(削除されたファイルは影響を受けません)。

例:

#!/bin/bash
# see http://ss64.com/bash/rsync_options.html
DROPBOX=~/Dropbox/
BACKUP=~/dropboxbackup

rsync -rvt $DROPBOX $BACKUP

シンボルマーク:

r - 再帰

v - 冗談

t - 時間を節約

関連情報