定時刪除Gitea的SQLite3資料

為了部署方便,Gitea一開始建置時使用的是SQLite資料庫,當操作時間一久,累積了多個操作記錄,為了提升系統執行效能最好定期刪除舊的資料,因此以下列方法建立自動刪除SQLite資料的自動排程步驟。

清理資料的SQLite script是:

delete from action where created_unix < 1693497600;
vacuum;

小於後的時UNIX時間數值。

計算一個月前的UNIX時間

SQLite action資料表的建立時間使用的是UNIX時間的數值,以ut-cli的ut.exe來計算前一個月的時間數值。

▼ 用下列命令取出UNIX時間

ut generate -d -1month >> delete_data.sql

cmd.exe不輸出換行的方法

批次檔不輸出換行的方法是使用echo | set /p="命令"

完整內容

cd /d c:\gitea安裝資料夾\data
echo|set /p="delete from action where created_unix < " > delete_data.sql
ut generate -d -1month >> delete_data.sql
echo ; >> delete_data.sql
echo vacuum; >> delete_data.sql

type delete_data.sql

set DIR=c:\gitea安裝資料夾\data
set DD=%date:/=%
copy %DIR%\gitea.db %DIR%\gitea.db.%DD% /y
sqlite3 %DIR%\gitea.db < %DIR%\delete_data.sql
echo %DATE% %TIME% > delete_data.log
dir %DIR%\gitea*.* /od >> delete_data.log

##

您可能也會有興趣的類似文章

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *