前言

思源笔记是一款本地笔记为主的软件,其目前提供了148元/year的付费同步功能,但对于21世纪中国难民而言还是太贵啦。

条件允许的同学还是使用官方的同步,支持下作者。

所以,就在思考有没有白嫖的一种方法,能同步且不要付费呢。

网上有些使用云盘自动同步,但可能导致数据丢失。

这里提供方法:

笔记通过小软件的方式进行自动同步到git。

这个[siyuansyntogit]小软件基于python开发,我只在win10上进行过测试,下方有源码及exe提供,诸君自取。

https://gitee.com/kingstacker/siyuansyntogit

笔者对python语言并不熟悉,这是第一个demo,当前对于我已然够用,当然你可以自行进行更改。

软件及环境:

win10、思源笔记v2.4.7、siyuansyntogit、git、gitee网站

流程

(1)软件支持功能:

>目录正确性判断

>网络连接线判断,打开软件后,检测到电脑联网后会自动拉取远程文件同步

>检测思源笔记开关状态

>思源笔记软件关闭则自动提交git同步

>小软件运行后默认最小化 窗口运行

(2)确保你使用过Git,Git使用不再此文说明。软件放置路径跟思源笔记的data路径在同一层级。git工程也在这一层级。

.gitignore文件内容参考:避免其他文件夹同步,这里只会同步data文件夹。思源笔记的笔记内容是存放在data文件夹中的。

conf/
history/
temp/
*exe

(3)确保已经进行了初次git提交,确保环境一切正常。enjoy it。

(4)你也可以把小软件开机自启:

参考:https://zhuanlan.zhihu.com/p/446167633

(4.1)创建小软件的快捷方式。

(4.2)快捷方式拖入:win+R打开打开对话框输入shell:startup,进入启动文件夹

(5)小软件运行界面图示:小软件打开默认最小化运行。



检测到思源笔记软件关闭,则自动提交同步。

这里使用gitee作为远程仓库,可以看到版本已经提交。

(6)源码参考:你可以进行任意更改,希望我的工作对你有所帮助。

import os
import sys
import ctypes
import time
import psutil
from subprocess import call home_dir = os.getcwd() #获得当前路径 choice_list = ['上传','下载'] def git_update():
os.chdir(home_dir)
git_add_cmd = "git add ."
git_commit_cmd = "git commit -m {}".format(gitdate)
git_push_cmd = "git push origin master"
call(
git_add_cmd + "&&" +
git_commit_cmd + "&&" +
git_push_cmd,
shell=True
) def git_get():
os.chdir(home_dir)
git_pull_cmd = "git pull origin master"
call(
git_pull_cmd,
shell=True
) def is_process_running(process_name):
pl = psutil.pids()
for pid in pl:
if psutil.Process(pid).name() == process_name:
return True
else:
return False if __name__ == "__main__": ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 6)
print("---------------------------------------------------")
print("欢迎使用 SiYuan Auto Backup,poweredBy kingstacker!")
print("---------------------------------------------------")
print("程序当前运行路径:")
print(home_dir)
time.sleep(0.5)
print("----------------")
print("检查程序执行路径是否正确中...")
dir_status = int(os.path.exists(home_dir+'\data'))
if dir_status == 1:
print("程序执行路径正确.")
pass
else:
print("未发现当前路径存在data文件夹,请确认!")
os.system("pause")
sys.exit()
eth_exit_code = 1
print("----------------")
print('检查网络连接状态中,请等待...')
status_befor = 0;
auto_pull_status = 0;
while True:
if eth_exit_code == 1:
# eth_exit_code = int(os.system('ping www.baidu.com > /dev/null'))
eth_exit_code = int(os.system('ping www.baidu.com'))
else:
pass
if eth_exit_code == 1:
print('没联网,确认你的网络连接状态.')
time.sleep(2)
while True:
gitdate = time.strftime("%Y-%m-%d/%H-%M-%S/%A", time.localtime())
if eth_exit_code:
break
if auto_pull_status == 0:
print("----------------")
print("拉取远程文件中...")
git_get()
print("拉取远程文件完成!")
print("----------------")
time.sleep(2) try:
siyuan_program_status = int(is_process_running("SiYuan.exe")) # 查看思源软件是否打开
except:
pass
else:
pass
if status_befor == 0 and siyuan_program_status == 1:
print("----------------")
print("发现思源软件已打开,等待软件关闭...")
if status_befor == 1 and siyuan_program_status == 0:
print("----------------")
print("发现思源软件已关闭,备份笔记到云端中...")
print("请等待...")
print("拉取远程文件更新确认中...")
git_get()
print("正在提交笔记...")
git_update()
print("提交备份已完成!")
print("当前备份时间点:",gitdate)
print("----------------")
status_befor = int(siyuan_program_status)
auto_pull_status = 1;

以上。

Windows下自动云备份思源笔记到Gitee的更多相关文章

  1. 本文讲述下windows下使用rsync备份数据

    本文讲述下windows下使用rsync备份数据 需要使用的软件如下: 环境需求: 上海monitor上跑有定时任务计划备份线上数据库,现在需要把上海monitor上的备份数据拉回到179.12数据回 ...

  2. Pycharm+Python3+python工程打包成exe+在windows下自动定时运行

    python3打包成exe---pyinstaller方法:https://www.cnblogs.com/mufenglin/p/7479281.html 按照如上方式打包后,执行dist文件夹(新 ...

  3. windows下自动删除过期文件的脚本

    windows下自动删除过期文件的脚本 前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留 ...

  4. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  5. windows下自动FTP的脚本

    之前发过一篇如何自动FTP的文章,不过当时的脚本都是在Unix下测试通过的.而如果在windows下实现自动FTP的功能,则需要通过如下方式:     1. 建立ftp123.bat文件 open I ...

  6. windows下mysql增量备份与全备份批处理

    win下的全备批处理 批处理用于游戏服务器,经过严格测试,且正式使用,主要用来完全备份数据库,当然.这只是将数备份出来 ,至于如何将备份出来的数据远程传送的远程服务器上可以调用ftp的功能,此脚本并未 ...

  7. 在Windows下自动运行Modelsim

    首先声明:该文章是在刘志伟老师的<Modelsim的Tcl命令>的基础上写的,希望我们能越来越自动化. 1.编写好源文件.包含asyn_fifo.v.fifomem.v.rptr_empt ...

  8. windows下IntelliJ IDEA搭建kafka源码环境

    于kafka核心原理的资料,网上有很多,但是如果不自己研究其源码,永远是知其然而不知所以然.下面就来演示如何在windows环境下来编译kafka源码,并通过IntelliJ IDEA开发工具搭建ka ...

  9. windows下mysql定时备份

    场景:一套B/S小系统,租用了一个虚拟服务器windows 2003,数据库是mysql,做每天的数据库备份 1.关于windows下的定时任务执行     * 命令说明 - /sc 指定计划类型,取 ...

随机推荐

  1. virtual box 安装虚拟机如何全屏

    最近由于要进行微信小程序的开发.可恶的腾讯狗没有提供linux版的开发工具!不得以安装虚拟机!暗号虚拟机后发现win10的界面实在是太小,于是乎去解决这个问题!其实很简单,一般来是说直接点虚拟机面板上 ...

  2. 推荐软件(一):Motrix——磁力下载器

    个人觉得迅雷这样的下载器广告又多,启动速度又慢,又占用内存和存储,非常地不好用.有时候下载速度也不是你自己网速的最大值,而且有一些资源也会因为版权问题阻止你下载. Motrix 界面非常简洁:下载速度 ...

  3. HTML(下)

    (一)表格标签 1.表格的作用 用于显示.展示数据,让数据更加规整,可读性更好,把繁琐的数据表现得很有条理,表格不是用来布局页面的,而是用来展示数据的 2.表格标签基本语法 table--table ...

  4. 【java】学习路径45-多线程-线程生命周期

    线程分为五大状态:新建.就绪.运行.阻塞.死亡. New,Runnable,Running,Blocked,Terminated. 新建状态(New: 创建好一个系统对象,在调用start()之前,线 ...

  5. MyBatis第一个程序

    创建一个maven项目,并且在pom.xml导入myBatis和jdbc的jar包 <dependencies> <dependency> <groupId>org ...

  6. 如何结合整洁架构和MVP模式提升前端开发体验 - 整体架构篇

    本文不详细介绍什么是整洁架构以及 MVP 模式,自行查看文章结尾相关链接文章. 整洁架构粗略介绍 下图为整洁架构最原始的结构图: Entities/Models:实体层,官方说法就是封装了企业里最通用 ...

  7. MPI学习笔记(三):矩阵相乘的分块并行(行列划分法)

    mpi矩阵乘法:C=αAB+βC 一.主从模式的行列划分并行法 1.实现方法 将可用于计算的进程数comm_sz分解为a*b,然后将矩阵A全体行划分为a个部分,将矩阵B全体列划分为b个部分,从而将整个 ...

  8. Java控制台打印三角形

    for (int i = 1; i <= 5; i++) { //最上面先是五个往下一次4.3.2.1 for (int j = 5; j >= i; j--) { System.out. ...

  9. Elasticsearch高级检索之使用单个字母数字进行分词N-gram tokenizer(不区分大小写)【实战篇】

    一.前言 小编最近在做到一个检索相关的需求,要求按照一个字段的每个字母或者数字进行检索,如果是不设置分词规则的话,英文是按照单词来进行分词的. 小编以7.6.0版本做的功能哈,大家可以根据自己的版本去 ...

  10. KVM更改虚拟机默认存储路径

    Virt默认的虚拟机存储路径是/var/lib/libvirt/images,如下图所示 接下来我们创建一个新的存储池,用来存储新建的虚拟机.存储池的名称为vm, 路径为/home/kvm/ (/ho ...