前言

思源笔记是一款本地笔记为主的软件,其目前提供了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. 使 Word 段落第一行空出两个字符的位置(段落首行缩进)

    描述 使 Word 段落第一行左突出两个字符的位置,即段落首行缩进的方式有两种. "视图"选项卡--"显示"组--标尺 "开始"选项卡--& ...

  2. [开源内卷] .NET 定时任务 -- FreeScheduler 支持 cron、持久化、可变定时设置

    前言 卷了,卷了,卷了,最近太卷...这篇文章写了好几天了,由于同类型文章太多,排期到今天发布.实在不想卷,得罪了!各位定时任务开源大佬们! .NET 定时组件生态实在太强大了,写下此文只希望能供大家 ...

  3. 一文了解.Net的CLR、GC内存管理

    一文了解.Net的CLR.GC内存管理 微软官方文档对内存管理和CLR的概述 什么是托管代码? 托管代码就是执行过程交由运行时管理的代码. 在这种情况下,相关的运行时称为公共语言运行时 (CLR),不 ...

  4. Springboot+MybatisPlus多数据源比对数据

    欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章https://www.javaman.cn/ 基于不同的数据源进行数据比对,比较两个数据库的表之间数据的总量,以及处理后的总量,按 ...

  5. 创建swarm集群并自动编排

    1.基础环境配置 主机名 master node1 node2 IP地址 192.168.***.1 192.168.***.2 192.168.***.3 角色     管理节点 工作节点 工作节点 ...

  6. 存储更弹性,详解 Fluid “ECI 环境数据访问” 新功能

    近期,Fluid 支持了阿里云 ECI 应用,并将 JuiceFS Runtime Controller 设置为默认安装:JuiceFS 也就此功能与 Fluid 完成了集成和测试工作. 用户可以在 ...

  7. 简析XDP的重定向机制

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 一. XDP Socket示例解析 源码参见:htt ...

  8. 【学习笔记】卷积神经网络 (CNN )

    前言 对于卷积神经网络(cnn)这一章不打算做数学方面深入了解,所以只是大致熟悉了一下原理和流程,了解了一些基本概念,所以只是做出了一些总结性的笔记. 感谢B站的视频 https://www.bili ...

  9. 基于深度学习的文本分类案例:使用LSTM进行情绪分类

    Sentiment classification using LSTM 在这个笔记本中,我们将使用LSTM架构在电影评论数据集上训练一个模型来预测评论的情绪.首先,让我们看看什么是LSTM? LSTM ...

  10. 通俗易懂理解 MySQL B+树、数据存储、索引等知识

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485630&idx=1&sn=681c9c0d ...