GAS活用事例:古いログファイルを自動削除

の記事では、Google Apps Script(GAS)を活用して、Googleドライブにある古いログファイを自動で削除する方法を紹介します。

私の場合はsshクライアントの操作ログをGoogleドライブに保存しています。直近のログは見ることもありますが数ヶ月前のログを確認することはないので、一定以上古いログファイルは手動で定期的に削除しました

手動で削除するのが手間なので、GASを利用して自動削除するようにしました

スクリプトの概要

対象フォルダにあるファイルを、保存期間(90日)を過ぎたものを削除します。手動での整理が不要になり、容量不足の解消に役立ちます。

利用環境によって、以下の箇所を変更します

  • const folderName = "ssh_log"; // ログが保存されているフォルダ名
  • const daysToKeep = 90; // 保存期間(日)

実装コード

対象フォルダ(folderName)にあるファイルを一定期間(daysToKeep)より古いのを削除するコードです

function deleteOldSshLogs() {
  const folderName = "ssh_log"; // ログが保存されているフォルダ名
  const daysToKeep = 90;        // 保存期間(日)
  
  const now = new Date();
  const expirationDate = new Date(now.getTime() - (daysToKeep * 24 * 60 * 60 * 1000));
  
  // フォルダを取得
  const folders = DriveApp.getFoldersByName(folderName);
  
  if (folders.hasNext()) {
    const folder = folders.next();
    const files = folder.getFiles();
    
    while (files.hasNext()) {
      const file = files.next();
      // 最終更新日が保存期間を過ぎているか確認
      if (file.getLastUpdated() < expirationDate) {
        console.log("削除対象: " + file.getName() + " (更新日: " + file.getLastUpdated() + ")");
        file.setTrashed(true); // ゴミ箱へ移動
      }
    }
  } else {
    console.log("フォルダが見つかりませんでした: " + folderName);
  }

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です