Apple Scriptでフォルダーの同期は出来ませんか?

MacOS7.6の頃ですが、AppleScriptでフォルダーの同期というのが有りました。

今 MacOSX 10.4.11をQuickSilverの733MHzで使っていますが、AppleScriptにはフォルダーの同期というのが無いようですが、

フォルダーの同期をするにはどうしたら良いでしょうか?

用途はBack Upの為に通常使っている作業用のHDDから他のBack Up用のHDDに自分自身で作成したファイルをコピーしたいと思っています。

どうぞ宜しく御指南下さい。


なおQuickSilverには内蔵でHDDが3つ、シリアルATAホストカードを介しての500GBのHDD(作業用)、ATA133ホストカードを介しての

160GBのHDD(バックアップ用)、純正のATA66(33?)でつなげています80GBのHDD(システムトラブル時の起動用)があります。

投稿日 2009/06/18 01:27

返信
返信: 24

2009/06/25 00:15 ポイントマン への返信

Automatorで自動化ですか?

皆様ご承知の通りこのあたりについては全くの初心者ですから、僕に出来るかどうか。

やっとフォルダーの同期が出来たくらいで。

でも自動化できたら便利でしょうね。

Automator自体まだ起動したこともありません。

ターミナルも今回初めて起動したくらいです。


Automatorはまさにそんな人のためにあるようなものです。


rsyncで同期が成功したなら、そのrsyncコマンドをAutomatorの「シェルスクリプトを実行」ウインドウ内にそっくりそのまま書き込んで、アプリケーションとして適当な名前(Backup.appとか)で保存するだけです。


スクリプトの内容はさておいて、基本の作り方は下記が参考になります。

シェルスクリプトを.app形式にする方法


ただ、このままこのアプリケーションをダブルクリックすると、実行後も起動しっぱなしにってしまうので、もう一度このアプリケーションをAutomatorで開いて、ユーティリティから「アプリケーションを終了」(アプリを選択)を加えて再保存しておけば良いでしょう。

2009/06/26 03:39 ポイントマン への返信

私自身は,既にLeopard(のTimeMachine)に切り替えたため,今は使ってませんが,

Tigerの頃には rsync の --link-dest オプションを利用したシェルスクリプトを作成し,

そのシェルスクリプトを毎時間実行するように crontab で登録して ホーム以下を全部外付けHDDへ増分バックアップしていました。

シェルスクリプトの参考にでもと,その時のバックアップ部分を記しておきます。

2行目の「backup01」がバックアップ先ボリューム名で,これを使用者のボリューム名に変更すればそのまま使用可能なはずです。

下記で使われているターミナルコマンドは 「[」(manで引く時は test)以外は man で引ける筈なので,興味があれば勉強してみて下さい。


#!/bin/bash dest=/Volumes/backup01 src=$HOME user=$dest/$(basename "$src") now=$(date +%Y/%m/%d/%H%M%S) base=$user/$now log=$user/log/log.txt #バックアップ先ボリュームがマウントされているか確認する。 if ! df | grep "$dest¥$" > /dev/null ; then echo "$dest not mounted."; exit 1 ; fi #バックアップ先ボリュームがDOSフォーマットでないか確認する。 if diskutil list $dest | grep "DOS_FAT_32" ; then exit 2 ; fi #rsync ではバックアップ先の一つ上のフォルダまでは事前に作成しておく必要がある。 dnbase=$(dirname "$base") if [ ! -d "$dnbase" ] ; then mkdir -p "$dnbase" && chmod -R 750 "$dnbase" || exit 4 fi #アクセス権不足でバックアップできないものがあった時のメッセージ。 warn="Some files and/or directories did not backuped." cd "$src" if [ -f "$log" ]; then #2回目以降のバックアップなので前回バックアップ済みのものはそこからのハードリンクにする。 lastline=$(tail -n 1 "$log") preb=$user/$(printf "%.17s" "$lastline") rsync -aE --exclude="*.sparseimage" --exclude="Library/Caches" --link-dest=$preb ./ "$base" || echo $warn else #ログファイルが無いので,最初のバックアップ。 mkdir -p "$user/log" && chmod -R 750 "$user" chown -R $user "$user" rsync -aE --exclude="*.sparseimage" --exclude="Library/Caches" ./ "$base" || echo $warn fi #ログファイルに開始日時と終了時刻とディスク使用量を追記で記録する。 echo "$now;$(date +%T),$(df | grep "$dest¥$")" >> "$log"

2009/06/26 05:33 kanekaka への返信

本当に皆様大変お世話になりました。

心よりお礼申し上げます。 ありがとうございます。

まだrsyncのオプションの使い方の練習中で全部を試しきれない状況です。(汗

それとそれをAutomatorでアプリとして保存するのもいろんなオプションのを作っておこうかと奮闘中です。

ただアプリの終了がわからなくて、Automatorのコマンドを探しても「〜の終了」というのが、

「keynoteの終了」しかなくて、またそのコマンドを開いて必要な部分を変更すればと思うのですが、

そのコマンドの開き方がわからないと...(大汗

けっこう手こずってます。

でもずいぶん明るい光が見えてきたので良かったです。

ターミナルやAutomatorのいままで起動したことがなかったソフトの利用方法をお教えいただいて、

またMacの使い勝手というかMacの懐というかが少しわかったような気がします。

まだまだまったくの初心者ですが。


皆様の貴重なお時間を割いてまで僕に御指南頂きましてありがとうございました。

2009/06/26 06:21 ポイントマン への返信

ただアプリの終了がわからなくて、Automatorのコマンドを探しても「〜の終了」というのが、

「keynoteの終了」しかなくて、またそのコマンドを開いて必要な部分を変更すればと思うのですが、

そのコマンドの開き方がわからないと...(大汗

けっこう手こずってます。


Automatorライブラリ→ユーティリティの中に〈アプリケーションを終了〉があります。つくったアプリケーション(その他…から選択)を選んで保存です。

2009/06/29 05:27 M3CSL への返信

Automatorのライブラリーというのは「ライブラリー」という左端の所ですよね。

でも「ユーティリティ」というのがわからないのです。「ライブラリー」と右隣の「アクション」というところですか?

もしそうでしたら「アプリケーションの起動」はあるのですが、「アプリケーションの終了」はありません。

削除しちゃったのかしら?

216のアクションがあるようですが。


2009/06/30 06:31 M3CSL への返信

M3CSL様


ありがとうございます。

もともと「アプリ・・・の終了」が無かったなら。

僕が捨ててしまったのかと思って。

フォルダー同期の方も実行させれば良いのなら気が楽です、

ターミナルとかAutomatorとか使いこなせこなせられるようになったら便利になりそうですね。

僕もこれから少しずつ勉強しようと思います。


初歩からの使い方とかのページをググります。


では

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Apple Scriptでフォルダーの同期は出来ませんか?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。