|
@@ -1,64 +0,0 @@
|
|
|
-const path = require('path');
|
|
|
-const fs = require('fs');
|
|
|
-
|
|
|
-// 获取当前命令行上下文路径
|
|
|
-const currentDirectory = process.cwd();
|
|
|
-console.log(`----------------------------`)
|
|
|
-
|
|
|
-const backupPath = path.join(currentDirectory, '/backup/')
|
|
|
-
|
|
|
-//获取文件列表
|
|
|
-const files = fs.readdirSync(backupPath);
|
|
|
-if (files.length > 5) {
|
|
|
- //遍历文件列表
|
|
|
- console.log(`准备清理备份文件...`)
|
|
|
- let newfiles = []
|
|
|
- files.forEach((file) => {
|
|
|
- const time = file.split('_');
|
|
|
- if (time.length >= 2) {
|
|
|
- newfiles.push({time: time[0], file: file})
|
|
|
- }
|
|
|
- })
|
|
|
- //文件列表排序
|
|
|
- newfiles = arrKeySort(newfiles, 'time', 'desc');
|
|
|
- //移除文件
|
|
|
- newfiles.forEach((item, index) => {
|
|
|
- if (index >= 5) {
|
|
|
- fs.unlinkSync(backupPath + item.file);
|
|
|
- console.log(`已清理${item.file}`)
|
|
|
- }
|
|
|
- })
|
|
|
- console.log('---------- 清理完成 ----------')
|
|
|
-} else {
|
|
|
- console.log(`备份文件小于5份,不执行清理操作...`)
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-//数组对象排序
|
|
|
-function arrKeySort(arr, field = 'id', order = 'asc')
|
|
|
-{
|
|
|
- return arr.sort(arrCompare(field, order));
|
|
|
-}
|
|
|
-
|
|
|
-function arrCompare(key, order = 'asc')
|
|
|
-{
|
|
|
- return function innerSort(a, b) {
|
|
|
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
|
|
|
- // 该属性在任何一个对象上都不存在
|
|
|
- return 0;
|
|
|
- }
|
|
|
- const varA = (typeof a[key] === 'string')
|
|
|
- ? a[key].toUpperCase() : a[key];
|
|
|
- const varB = (typeof b[key] === 'string')
|
|
|
- ? b[key].toUpperCase() : b[key];
|
|
|
- let comparison = 0;
|
|
|
- if (varA > varB) {
|
|
|
- comparison = 1;
|
|
|
- } else if (varA < varB) {
|
|
|
- comparison = -1;
|
|
|
- }
|
|
|
- return (
|
|
|
- (order === 'desc') ? (comparison * -1) : comparison
|
|
|
- );
|
|
|
- };
|
|
|
-}
|