思想就是武器

好好学习 天天向上

因为图床,我折腾了几次了。从最开始的七牛,折腾到腾讯云。现在腾讯云又满足不了我的流量需求,被迫又得想办法,刚好自己有个搬瓦工的 VPS,这个月把线路换成 CN2 的,VPS 速度方面应该是没问题。所以决定就在这上面自己搭一个图床。整个过整非常简单,下面是自己的搭建步骤:

在搬瓦工 VPS 上安装 Docker

这个太初级,就不说了,请自行百度。

安装 Docker-compose

github 地址:https://github.com/docker/compose/releases
执行安装命令

阅读全文 »

到新单位,有个任务,每天要巡查备份文件是否正常生成。服务器清单上 170 多台服务器,比较重要的有 30 多台。每天如果手工登陆去查看的工作量,就要花费快 2 个小时。于是自己用 python 写了一个文件夹监控,监控文件的产生日期、文件名、文件大小等信息,实时推送到手机微信上。

运行环境

Python3.7
安装 win32file 模块

1
pip install pypiwin32

源代码

阅读全文 »

7 月 6 日更新:
修复图床被墙,无法使用的问题。


4 月 28 日更新:
昨天把图床从腾讯云转到自己搭建的私有图床上了,现在应该不会再有图片无法显示的情况了。


由于最近本博客浏览量增大,腾讯云免费提供的 10G 流量已经不够使用了。所以会造成图床里的图片无法看到的情况。请大伙知悉!!!等到下月初的时候流量恢复 10G,就可以正常显示了。介于这个情况,如果哪位大佬肯慷慨解囊,给个 10 块 8 块的。估计就够一个月的流量了。我也有想过自己搭个私有云平台,但是考虑到是放在自己家里,而且网速没有保证,就放弃了。如果有哪位大佬能提供一个比较好的图床也是可以的。

阅读全文 »

valine 是我用过最好的博客评论系统了,非常喜欢这种不用注册帐号就可以直接使用的方式并且还支持 Markdown 语法,简直是完美。现在我要说的就是如何让评论后,博主可以第一时间用邮箱收到游客评论,而游客评论时,只要写上自己的邮箱地址,也会在第一时间收到博主的回复邮件。让 valine 更加井上添花。
作者项目地址:https://github.com/DesertsP/Valine-Admin


具体实现步骤:

1. 在 Leancloud 云引擎设置界面,填写代码库并保存:https://github.com/DesertsP/Valine-Admin.git

阅读全文 »

我经常遇到人在外面,但是需要访问家里的文件的情况。原来搭了一个 FTP 文件服务器,但是感觉还是不够方便。我这个人比较懒,不方便怎么可以行呢?所以就有了这篇博文。

WEBDAV 是什么?

自己百度。。。。。

webdav 对比 ftp 有什么好处?

webdav 通过 http 工作,所以有 ftp 无法提供的 http 的所有好处。例如:强身份验证,加密,代理支持和缓存等。虽然 ftp 也可以通过 SSH 获得一些支持,但 http 基础框架的部署要比 ssh 更广泛。再说,ssh 没有 http 所做的各种工具,开发库和应用程序。

阅读全文 »

我最近玩 python 遇到使用 json.loads 转换 json 内容时,如果里面包含Ⅰ·Ⅱ·Ⅲ·Ⅳ·Ⅴ·Ⅵ·Ⅶ·Ⅷ·Ⅸ·Ⅹ·Ⅺ·Ⅻ 这些特殊字符时,就会报错。
UnicodeEncodeError: ‘ascii’ codec can’t encode character ‘\uff1a’ in position 40: ordinal not in range(128)
报错代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.5/urllib/request.py", line 466, in open
response = self._open(req, data)
File "/usr/lib/python3.5/urllib/request.py", line 484, in _open
'_open', req)
File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
result = func(*args)
File "/usr/lib/python3.5/urllib/request.py", line 1297, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/usr/lib/python3.5/urllib/request.py", line 1254, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/usr/lib/python3.5/http/client.py", line 1107, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python3.5/http/client.py", line 1142, in _send_request
self.putrequest(method, url, **skips)
File "/usr/lib/python3.5/http/client.py", line 984, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode character '\uff1a' in position 40: ordinal not in range(128)

这个问题困扰我好几天,中间折腾的过程就不多说了。
下面说一下我的解法方法,灵感来自上面这段报错代码的第 17 和 18 行。
首先用 vi 或 nano 等编辑器,打开 /usr/lib/python3.5/http/client.py 这个文件,然后定位到 984 行。将 self._output(request.encode('ascii')) 修改成 self._output(request.encode('utf-8'))。重新跑代码后完美解决。

在 linux 下你可以使用 crontab 周期性的执行任务。crontab 设置也非常灵活,下面一起来学习一下。

crontab 的安装

crontab 基本很多 linux 上都已经有安装了,直接运行 crontab 看看是否返回,command not found 如果是就执行下面的安装命令。

1
2
yum install -y crontabs vixie-cron    #centos or redhat
apt-get install -y cron #debian or ubuntu

crontab 的启动、停止

阅读全文 »