浏览代码

Run logrotation binary from program

chaptergy 4 年之前
父节点
当前提交
b7b150a979
共有 2 个文件被更改,包括 24 次插入17 次删除
  1. 21 1
      backend/setup.js
  2. 3 16
      docker/rootfs/etc/logrotate.d/nginx-proxy-manager

+ 21 - 1
backend/setup.js

@@ -201,9 +201,29 @@ const setupCertbotPlugins = () => {
 		});
 };
 
+
+/**
+ * Starts a timer to call run the logrotation binary every two days
+ * @returns {Promise}
+ */
+const setupLogrotation = () => {
+	const intervalTimeout = 1000 * 60 * 60 * 24 * 2; // 2 days
+
+	const runLogrotate = async () => {
+		await utils.exec('logrotate -f /etc/logrotate.d/nginx-proxy-manager');
+		logger.info('Logrotate completed.');
+	};
+
+	logger.info('Logrotate Timer initialized');
+	setInterval(runLogrotate, intervalTimeout);
+	// And do this now as well
+	return runLogrotate();
+};
+
 module.exports = function () {
 	return setupJwt()
 		.then(setupDefaultUser)
 		.then(setupDefaultSettings)
-		.then(setupCertbotPlugins);
+		.then(setupCertbotPlugins)
+		.then(setupLogrotation);
 };

+ 3 - 16
docker/rootfs/etc/logrotate.d/nginx-proxy-manager

@@ -1,4 +1,4 @@
-/data/logs/*_access.log /data/logs/*/*_access.log {
+/data/logs/*_access.log /data/logs/*/access.log {
     create 0644 root root
     weekly
     rotate 4
@@ -11,7 +11,7 @@
     endscript
 }
 
-/data/logs/*_error.log /data/logs/*/*_error.log {
+/data/logs/*_error.log /data/logs/*/error.log {
     create 0644 root root
     weekly
     rotate 10
@@ -22,17 +22,4 @@
     postrotate
     /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
     endscript
-}
-
-/data/logs/*.log /data/logs/*[!_error].log /data/logs/*[!_access].log {
-    create 0644 root root
-    weekly
-    rotate 5
-    missingok
-    notifempty
-    compress
-    sharedscripts
-    postrotate
-    /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
-    endscript
-}
+}