完整的保存onetab的书签信息
之前在百度上找怎么完整的保存onetab的书签信息,没找到答案,于是乎上了google,在stackoverflow上找到了一个相关的答案
How to restore OneTab list of tabs after computer crash? [closed]
发现答主的招数已经过时了,不过思路还是一样的
stackoverflow上提到的两个文件没有找到,但是chrome扩展的数据还是存在这个目录下
C:\Users\XXXX\AppData\Local\Google\Chrome\User Data\Default\Local Storage
1.18版本的onetab的数据存储在上面路径的leveldb文件夹下,直接备份整个文件夹就好了,
哦,对了,忘了说查找方法,大致思路就是利用强大的everything的搜索功能中的“最后修改时间”,查找在我修改了onetab书签信息后上面的那个目录中发生改变的一些文件,直指leveldb文件夹

图片可能不清晰,右击图片,新标签页打开
-----------------------------------------------朴素的分割线----------------------2018年1月16日----------
最后添加两个python3文件备份程序
md5校验选择备份(说人话:只备份被修改过的文件或者备份目标文件夹内没有的文件)
完全备份(就是完全删除原备份,再重新备份,正是这里所需要的,由于每次的onetab书签信息发生改变都会引起对应的.ldb结尾的文件名发生改变,所以不能使用第一个,不然备份文件夹内的文件会越来越多)
像下面这样,配置好以后,直接打开批处理文件就可以一键备份指定目录到指定路径下
注意:完全备份不适用于较大以及数量较多的文件备份,在备份onetab之前需要关闭chrome,否则会由于文件正在打开中权限不足备份失败

ubuntu 中通过grep -rl leveldb ~也能找到onetab的数据目录在
/home/xxx/.config/google-chrome/Default/Local Storage/leveldb
这样就可以多平台备份onetab的信息了,不过还是没有云同步用的爽
python3代码
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 15 23:49:25 2018 @author: Asus
"""
# 脚本功能:删除new_path目录,然后复制original_path到new_path目录,初衷:用于名称变化的需要备份的文件
# 基于python3 import os
import shutil # 不校验直接删除已备份文件,再重新备份源文件
def non_checkout_backup(original_path, new_path):
if os.path.exists(new_path):
shutil.rmtree(new_path) # shutil.rmtree空目录、有内容的目录都可以删,但是必须要存在,否则报错, 而os.rmdir只能删除空目录
shutil.copytree(original_path, new_path) # original_path、new_path都只能是目录,而且new_path此前必须不存在 if __name__ == '__main__':
original_path = 'C:/Users/Asus/AppData/Local/Google/Chrome/User Data/Default/Local Storage/leveldb' # 这里需要更改,改成你自己的用户目录
new_path = 'D:/onetab数据备份/leveldb' # 这里改成你自己的备份目录
non_checkout_backup(original_path, new_path)
onetab一键备份.bat(运行之前关闭chrome浏览器,否则levelbd的文件处于占用状态,会报错)
python onetab_backup.py
完整的保存onetab的书签信息的更多相关文章
- 编写Java程序,创建一个 XML 文档,文档名为“hero.xml”,用于保存“王者荣耀”的英雄信息。
查看本章节 查看作业目录 需求说明: 创建一个 XML 文档,文档名为"hero.xml",用于保存"王者荣耀"的英雄信息.英雄信息包括编号(id).姓名(na ...
- [转]删除SQL Server Management Studio中保存的帐户信息
http://www.2cto.com/database/201208/149850.html 删除SQL Server Management Studio中保存的帐户信息 SQL Serve ...
- Linux和windows下清除svn保存的账号密码信息
linux是什么用户登录就是什么用户的home下,如root用户就是/root,如果xiangdong就是/home/xiangdong 用Svn时会有一种需求是需要换个帐号测试一下什么的,但往往有缓 ...
- 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
1.内容观察者ContentObserver 如果ContentProvider的访问者需要知道ContentProvider中的数据发生了变化,可以在ContentProvider 发生数据变化时调 ...
- 删除SSMS中保存的帐户信息
通常我们在对象资源管理器中连接服务器时,会发现在服务器名称下保存有之前的实例信息.随着连接增多,要找某个连接还得费劲.sql2012:此时可以删除C:\Users\Administrator\AppD ...
- Spring mybatis源码篇章-NodeHandler实现类具体解析保存Dynamic sql节点信息
前言:通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-XMLLanguageDriver解析sql包装为SqlSource SqlNode接口类 publi ...
- 应用SharedPreference保存程序的配置信息
SharedPreference: 1.用来保存应用程序的配置信息的XML文件,内部的数据形式为键值对 2.一般存在于/data/data/<包名>shared_prefs目录下 3.该对 ...
- Visual studio之C# 利用Settings保存COM口配置信息
背景 利用C#做一个串口通信项目,客户需求保存串口COM口的配置信息,在此利用Settings来进行保存. 正文 ".Settings"的创建 点击项目 --> 添加新项 - ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第三篇(登录窗口的实现以及如何保存登录者的信息)
一.前言: 1.再看这篇文章的时候,您是否已经完成前两篇介绍的文章里的功能了?(Tabs页的添加,Tabs页右键的关闭,主题的更换) 2.今天来说说登录窗口吧,看截图: ...
随机推荐
- Django中contenttype的应用
content_type表将app名称与其中的表的关系进行保存 通过下边的示例来理解content_type的具体应用: models: from django.db import models fr ...
- python介绍和基础(待补充)
python的介绍 把命令放到一个文件中,文件还能执行,这样的语言叫shell脚本 写一个c语言程序,.c结尾的,gcc运行c语言程序,生成.out文件,然后执行.out文件 c语言是先编写代码,再编 ...
- 进程 、进程组、会话、控制终端之间的关系 (转载 http://blog.csdn.net/yh1548503342/article/details/41891047)
一个进程组可以包含多个进程 进程组中的这些进程之间不是孤立的,他们彼此之间或者存在者父子.兄弟关系,或者在功能有相近的联系. 那linux为什么要有进程组呢?其实提供进程组就是方便管理这些进程.假设要 ...
- 定时任务之elastic-job概述
定时任务有哪些? Timer定时器 ScheduledExecutorService Spring自带的@Scheduled Quartz定时任务 当当elastic job定时任务 Quartz实现 ...
- [Python]关于return逻辑判断和短路逻辑
定义一个return...and..函数: def res(): ' 返回结果: >>> print(res()) 1234 定义一个return...or..函数: def res ...
- Visual studio插件 Reshaper--- 常用快捷键
快速修复 alt+enter (alt+enter唤出快速修复面板,上下方向键进行选择,再次敲击enter键确定修改) 跳转到对象声明 ctl+鼠标左键 重构-重命名(ctl+r+r) esc键退出 ...
- Javascript中的函数数学运算
1.Math函数与属性使用语法 Math.方法名(参数1,参数2,...); Math.属性; 说明 Math函数可以没有参数,比如Math.random()函数,或有多个参数,比如Math.max( ...
- 深入探讨JS中的数组排序函数sort()和reverse()
最近在研究Javascript发现了其中一些比较灵异的事情.有点让人感到无语比如: alert(typeof( NaN == NaN));//结果为假. alert(typeof( NaN != Na ...
- Spark机器学习9· 实时机器学习(scala with sbt)
1 在线学习 模型随着接收的新消息,不断更新自己:而不是像离线训练一次次重新训练. 2 Spark Streaming 离散化流(DStream) 输入源:Akka actors.消息队列.Flume ...
- [pixhawk笔记]8-半物理仿真环境
通过半物理仿真,可以在不试飞的情况下对飞控的软硬件进行部分验证,下面结合文档对半物理仿真环境的搭建和运行进行学习.先跑起来再说. Pixhawk支持多轴和固定翼的仿真,多轴用jMavSim,固定翼用X ...