代码 如何编写一个Shell脚本来清空`log.db`数据库中的`logs`表宝塔日志

2024-11-19 09:55:50 +0800 CST views 936

要编写一个 Shell 脚本来清空 logs 表中的记录,可以使用 DELETE FROM SQL 语句。以下是一个简单的脚本示例,用于清空 log.db 数据库中的 logs 表:

清空 logs 表的 Shell 脚本

set +o history
#!/bin/bash
cd /www/server/panel/data/db
# 定义数据库文件路径
DB_FILE="log.db"

# 执行 SQL 语句,清空 logs 表中的所有记录
sqlite3 "$DB_FILE" <<EOF
DELETE FROM logs;
EOF

# 输出结果
echo "logs 表中的所有记录已被清空。"

脚本说明

  1. DB_FILE="log.db":定义数据库文件的路径。
  2. DELETE FROM logs;:SQL 语句,删除 logs 表中的所有记录。
  3. echo "logs 表中的所有记录已被清空。":执行删除操作后输出一条提示信息。

执行脚本

  1. 将脚本保存为一个文件,例如 clear_logs.sh

  2. 赋予脚本执行权限:

    chmod +x clear_logs.sh
    
  3. 运行脚本:

    ./clear_logs.sh
    

注意事项

  • 不可逆操作DELETE FROM logs; 会永久删除 logs 表中的所有记录,这个操作是不可逆的,请确保在执行之前备份数据库文件(如果需要)。
  • VACUUM(可选):如果你希望在删除记录后回收空间,可以在 DELETE FROM logs; 语句后加上 VACUUM;,这会将数据库文件中的空闲空间整理出来。

例如:

sqlite3 "$DB_FILE" <<EOF
DELETE FROM logs;
VACUUM;
EOF
#!/bin/bash
cd /www/server/panel/data/db
# 定义数据库文件路径
DB_FILE="log.db"

# 执行 SQL 语句,删除 logs 表中最后一条记录
sqlite3 "$DB_FILE" <<EOF
DELETE FROM logs WHERE rowid = (SELECT rowid FROM logs ORDER BY rowid DESC LIMIT 1);
EOF

# 输出结果
echo "logs 表中的最后一条记录已被删除。"

set +o history
#!/bin/bash
cd /www/server/panel/data/db
# 定义数据库文件路径
DB_FILE="log.db"

# 执行 SQL 语句,删除 logs 表中最后 10 条记录
sqlite3 "$DB_FILE" <<EOF
DELETE FROM logs WHERE rowid IN (SELECT rowid FROM logs ORDER BY rowid DESC LIMIT 10);
EOF

# 输出结果
echo "logs 表中的最后 10 条记录已被删除。"

这个脚本将删除 logs 表中的所有记录并整理数据库文件,释放不再使用的磁盘空间。

推荐文章

12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
html一个包含iPhoneX和MacBook模拟器
2024-11-19 08:03:47 +0800 CST
go命令行
2024-11-18 18:17:47 +0800 CST
MySQL设置和开启慢查询
2024-11-19 03:09:43 +0800 CST
Vue3中如何处理WebSocket通信?
2024-11-19 09:50:58 +0800 CST
Vue3中如何处理组件的单元测试?
2024-11-18 15:00:45 +0800 CST
js一键生成随机颜色:randomColor
2024-11-18 10:13:44 +0800 CST
快速提升Vue3开发者的效率和界面
2025-05-11 23:37:03 +0800 CST
Nginx 防盗链配置
2024-11-19 07:52:58 +0800 CST
Rust 并发执行异步操作
2024-11-18 13:32:18 +0800 CST
Python Invoke:强大的自动化任务库
2024-11-18 14:05:40 +0800 CST
JavaScript中设置器和获取器
2024-11-17 19:54:27 +0800 CST
推荐几个前端常用的工具网站
2024-11-19 07:58:08 +0800 CST
浅谈CSRF攻击
2024-11-18 09:45:14 +0800 CST
mysql int bigint 自增索引范围
2024-11-18 07:29:12 +0800 CST
php腾讯云发送短信
2024-11-18 13:50:11 +0800 CST
前端如何给页面添加水印
2024-11-19 07:12:56 +0800 CST
向满屏的 Import 语句说再见!
2024-11-18 12:20:51 +0800 CST
linux设置开机自启动
2024-11-17 05:09:12 +0800 CST
Nginx 反向代理
2024-11-19 08:02:10 +0800 CST
一键压缩图片代码
2024-11-19 00:41:25 +0800 CST
程序员茄子在线接单