惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Scott Helme
Scott Helme
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
S
Security Affairs
宝玉的分享
宝玉的分享

无妄当自持

在 RTX 4060 Laptop(8GB 显存)笔记本上部署 Qwen3.5-4B 和 Qwopus3.5-9B-Coder 的完整实战 给 Hermes Agent 接入 Sciverse:5 分钟搞定学术搜索 MCP MinerU:让 AI Agent 读懂 PDF 的文档提取利器 用 Firecrawl + SearXNG 给 Hermes Agent 搭建本地搜索与网页抓取 让服务器的 AI 读写你的 Obsidian 笔记库:从自建同步到 MCP 集成 在 RTX 4060 笔记本上运行 Qwen 3.5 9B:llama.cpp 本地部署实录 在 Fedora 44 上编译支持 CUDA 的 llama.cpp:完整指南 Hermes WebUI 安装与使用指南 Hermes Agent 使用实践:核心机制与命令技巧 小米 MiMo 模型本地部署实践:从选型到踩坑 介绍并初步使用 Hermes Agent Fedora 使用脚本配置国内镜像源 在 Fedora server 39 中纯手动部署 Nextcloud 使用 shell 脚本和 systemd 定时替换 Gnome 壁纸 Linux 下字体配置 设置 VirtualBox 虚拟机为静态 ip 以方便主机访问 在启用安全启动的 Fedora 中安装 Nvidia 驱动 曲登尼玛冰川 面向神经科学家的人工神经网络
Linux 下将浏览器缓存放到内存,并在登录登出时进行同步
insidentally · 2024-04-05 · via 无妄当自持

如果你使用浏览器比较频繁,那么你的浏览器缓存会造成大量的磁盘 IO。想要减少磁盘 IO,保护磁盘的同时加快浏览器速度,可设置缓存使用内存。但是单纯使用内存放置浏览器缓存,会在重启后丢失缓存。所以本文使用脚本在登录登出时将缓存从内存同步回磁盘。

linux 下不同浏览器缓存位置不同:

  • 默认 Microsoft Edge 缓存位置在 ~/.cache/microsoft-edge
  • 默认 Google Chrome 缓存位置在 ~/.cache/google-chrome
  • 默认 Mozilla Firefox 缓存位置在 ~/.cache/mozilla/firefox/XXXXXXXX.default-release/cache2

本文以 Microsoft Edge 浏览器为例。

Firefox 浏览器缓存位置中 XXXXXXXX 为八位因人而异的随机代码,请自行查找你缓存文件的位置。

1. 缓存同步(打包解包)脚本

首先需要安装 tar 的 lzop,根据你的发行版自行安装。

然后在你喜欢的位置建立核心脚本并添加可执行权限:

建议将脚本建立在你的用户主目录下的某个位置,因为本文使用普通用户权限的 systemd 引用脚本。本文其他脚本同样如此。

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/sh

# 在登录后登出前执行此脚本
# 确保你的系统已经安装 tar 和 lzop

case "$1" in
import)
cd /dev/shm
tar --lzop -pxf /home/你的用户名/.cache/edgecache-backup.tar.lzop
;;
dump)
cd /dev/shm
# 删除大于 5MB 的缓存文件
find ./microsoft-edge/ -size +5M -exec rm {} \;
tar --lzop -pcf /home/你的用户名/.cache/edgecache-backup.tar.lzop microsoft-edge/
;;
*)
echo -e "Usage: $(cd `dirname $0`; pwd)/edgecache {import|dump}"
exit 1
;;
esac

exit 0

2. 登录导入脚本

然后在你喜欢的位置建立登录导入脚本,登录时设置缓存路径,及从压缩包导入缓存

内容如下:

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh

# 将 microsoft edge 缓存路径到内存
/bin/rm ~/.cache/microsoft-edge -R
/bin/mkdir -p /dev/shm/microsoft-edge
/bin/ln -sf /dev/shm/microsoft-edge ~/.cache/microsoft-edge

# 将浏览器缓存同步到内存
echo [`date +"%Y-%m-%d %H:%M"`] On login - Importing caches to ram >> /home/你的用户名/edgecache_sync.log
/你/核心脚本/的位置 import >> /home/你的用户名/edgecache_sync.log
echo [`date +"%Y-%m-%d %H:%M"`] On login - Caches imported to ram >> /home/你的用户名/edgecache_sync.log

3. 登出前导出缓存到硬盘

然后在你喜欢的位置建立登出导出脚本,登出时将缓存同步到磁盘。

内容如下:

1
2
3
4
5
6
7
8
9
#!/bin/sh

# 将浏览器缓存同步到磁盘
echo [`date +"%Y-%m-%d %H:%M"`] On logout - Dumping caches to disk >> /home/你的用户名/edgecache_sync.log
/你/核心脚本/的位置 dump >> /home/你的用户名/edgecache_sync.log
echo [`date +"%Y-%m-%d %H:%M"`] On logout - Caches dumped to disk >> /home/你的用户名/edgecache_sync.log

# 等待 4 秒
ping -c 4 127.1 > /dev/null

4. 让 systemd 在登录和登出时自动执行上述脚本

在 ~/.config/systemd/user/ 目录下创建文件 edgecache.service:

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Synchronize edge caches to disk
PartOf=graphical-session.target
DefaultDependencies=no
Before=umount.target shutdown.target reboot.target halt.target

[Service]
Type=simple
RemainAfterExit=true
ExecStart=/你/登录导入脚本/的位置
ExecStop=/你/登出导出脚本/的位置

[Install]
WantedBy=graphical-session.target

5. 启用 systemd

1
2
systemctl --user daemon-reload
systemctl --user enable edgecache.service

重启生效。

6. 参考资料

Linux 设置 chrome 缓存至内存,及开关机同步

Arch linux tmpfs

Arch linux Chromium 小贴士

内存盘和硬盘同步

用 systemd 关机前执行指令

使用 systemd 管理普通用户的服务

删除大于固定大小的文件

将 chrome 浏览器缓存放到内存

systemd 启动顺序

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 无妄当自持


avatar

insidentally

学习、实践、分享