最近、部署で連携して入力する機会が増えてきました。そのたびに、おいおいこれ入力数字違くない?誰間違えたの?という会話が発生し、変更履歴を遡って戻すといった作業をしてました。
ファイルの容量が大きいと、戻すのにも数分かかりイライラが募ります。
そこで、定期的にバックUPをとって、バックアップしたファイルはバックアップフォルダに入れるようにしたいと思いました。
思ったけどできるかなと調べたら、GASを使えば簡単にできるようなのでやってみたいと思います。
Google Apps Scriptsでファイルを定期的に自動バックアップ
まずは、Googleドライブにアクセスして、左上の作成ボタン > スクリプトをクリックします。
空のプロジェクトをクリックして、以下のスクリプトを書きます。
function Backup() { var file = DriveApp.getFileById('ファイルのID');//バックアップしたいファイル var folder = DriveApp.getFolderById('フォルダのID'); // ここで指定したフォルダにファイルが入る file.makeCopy(file.getName()+'-'+Utilities.formatDate(new Date(), 'JST', 'yyyy-MM-dd-HH'),folder); }
バックアップファイルは元の名前-年-月-日-時間(24H表示)になります。
例えば、WEB担当者の備忘録というファイル名の場合は、WEB担当者の備忘録-2014-09-08-21といった具合に命名されます。
ファイルのIDは、バックアップしたいファイルを開いて、URLを確認します。
スプレッドシートの場合が下記の●部分がID
/spreadsheet/ccc?key=●●●●●●●●●●●●●●●●●●●&usp=drive_web#gid=10
ドキュメントの場合は、下記の●部分がID
/document/d/●●●●●●●●●●●●●●●●●●●/edit
フォルダIDはバックアップファイルを入れたい、フォルダにアクセスしてURLを確認します。
#folders以下の文字列がIDです。
#folders/●●●●●●●●●●●●●●●
書いたスクリプトがちゃんと動くか確認します。
上のメニュー▶を押すと、名前をつけなさいと言われるので適当な名前をつけます。
あとは、承認を求めてくるのでOKします。
このあと▶を押して、対象のフォルダにファイルができていればOKです。
時間になったら作動するように、トリガーを設定する。
上のメニューの時計のようなアイコンをクリックすると、トリガーが出てくるので、時間主導型>時タイマー>4時間毎を指定して完了です。
最初は分タイマーで5分毎にしたのですが、サーバーエラーで止まることが頻発したので一日6回のバックUPに留めました。
質問などあればお気軽に!