GASエディタ

【GAS】ファイルを日次で自動バックアップ④ トリガーを設定する

前回のおさらい

前回はバックアップとしてコピーしたファイルのファイル名を変更しました。

変更前:ちょう大事なスプレッドシート のコピー

変更後:20240314_バックアップ_ちょう大事なスプレッドシート


バックアップをした日の日付をYYYYMMDD形式で取得しました。

const date = new Date()
const prefix = `${date.getFullYear()}${date.getMonth() + 1}${date.getDate()}_バックアップ_`


変更前の末尾についた「 のコピー」を削除しました。

const newFileName = prefix + backupFile.getName().replace(' のコピー', '')


最後にファイル名を変更しました。

const newFile = backupFile.setName(newFileName)


最終的にこのようなコードができあがりました。

const getImportantFiles = () => {
  // ファイルを取得している
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('ちょう大事なフォルダのID ※バックアップではない')
  const files = folder.getFiles()

  // バックアップフォルダにファイルのコピーを作成している
  while (files.hasNext()) {
    const backupFolder = driveApp.getFolderById('バックアップフォルダのID')
    const file = files.next()
    const backupFile = file.makeCopy(backupFolder)
    const date = new Date()
    const prefix = `${date.getFullYear()}${date.getMonth() + 1}${date.getDate()}_バックアップ_`
    const newFileName = prefix + backupFile.getName().replace(' のコピー', '')
    const newFile = backupFile.setName(newFileName)
    console.log(newFile.getName())
  }
}


今回は日次のトリガーを設定して毎日23時に自動実行されるようにします。

トリガーの設定

トリガーとは

Google Apps Scriptにはトリガーという機能があります。

トリガーとは自動的にプログラムを実行する機能です。

いくつかの条件をもとに自動実行できます。

時間単位の自動実行

  • 分単位で実行 例)1分おきに実行
  • 時単位で実行 例)1時間おきに実行
  • 日単位で実行 例)毎日9時に実行
  • 週単位で実行 例)毎週月曜日9時に実行
  • 月単位で実行 例)毎月1日9時に実行

カレンダーの予定をもとに実行

バインドされているスプレッドシート、ドキュメント等のイベントによる自動実行

※バインドされている場合のみ可能

  • 起動されたら実行
  • 編集されたら実行
  • 変更されたら実行
  • フォーム送信されたら実行

今回は「毎日23時に実行」したいので時間単位の自動実行ですね。

トリガーの設定

GASエディタの左のメニューからトリガーをクリック

※マウスを目覚まし時計アイコンの上に持っていくとメニューがひらきます


右下の「トリガーを追加」をクリック

下のように設定します。

①実行する関数を選択

1つのトリガーで実行できる関数は一つのみです。このコードはgetImportantFilesを実行することで他の関数も含めてすべて実行するようになっていますのでgetImportantFilesを実行するようにします。

②イベントのソースを選択

「毎日23時」に実行するようにしたいので時間主導型にします。

③時間ベースのトリガーのタイプを選択

「毎日」なので日付ベースのタイマーにします。

④時刻を選択

「23時」なので午後11時〜午前0時にします。とはいえ、23時ぴったりに実行されるわけではなく、23時〜24時の良い頃合いの実行となります。


すべて設定が終わったら右下の保存ボタンをクリックします。


このようになっていればトリガー設定完了です。


これでバックアップを自動でとれることになりましたし、皆大満足のファイル名にもなりました。


トリガー便利ですよね。というかGAS便利です。

何が便利ってサーバーたてなくていいのが最高です。

全部こうならないかなぁとGoogleにお願いしたいですね。


デュクシ

Copied title and URL