我的笔记
Python - No module name 'Crypto'
在Windows上使用pip安装 crypto
pip3 install crypto
尝试导入crypto的对象时候出现错误
>>> from Crypto.Cipher import AES
Traceback (most recent call last):
File "<stdin>" , line 1, in <module>
NoduleNotFoundError: No module name 'Crypto'
分2步解决这个问题
- 卸载crypto然后安装pycryptodome
Shell pip3 uninstall crypto pip3 install pycryptodome
- 定位到Python的安装目录,找到Libsite-packages,将crypto文件夹的首字母改成大写就可以了,crypto->Crypto
Linux只需要第一步
Develop Technology Python 2020-11-14 03:46:06
Git - 快速使用Git标签标记发布版本
像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。
Git支持两种标签 轻量标签与附注标签(lightweight/annotated),版本标签推荐使用 附注标签
给特定Commit打标签的Git语法如下
# 附注标签
git tag -a [version] -m [comment] [commitID]
# 轻量标签
git tag [version] -m [comment] [commitID]
以实际例子来看看,首先假设当前要提交的版本号为V2.0.0,当前的提交CommitID为06551e1fac
给06551e1fac打上标签
# 附注标签例子
git tag -a v2.0.0 -m "V2.0.0 Version" 06551e1fac
# 轻量标签例子
git tag v2.0.0 -m "V2.0.0 Version" 06551e1fac
标签创建后只存在于本地,如果需要推送到远程仓库,那么需要显式推送
# 单次推送2.0.0标签
git push origin v2.0.0
# 推送所有的标签
git push origin --tags
其他常见操作如下
签出标签(PS:常见于修复旧版本的问题,但请注意签出后本地仓库状态处于 detached 状态,所以要修复旧版本中的错误,建议签出并新建为分支)
# 签出2.0.0版本并创建为v2.0version分支
git checkout -b v2.0version v2.0
删除标签
# 删除本地标签
git tag -d v2.0.0
# 删除远程仓库标签
git push origin --delete v2.0.0
查看标签
# 列出标签列表
git tag
# 查看与2.0版本相关的标签
git tag -l v2.0.0
# 查看标签的详细内容
git show v2.0.0
Develop Base Git 2020-11-04 08:01:40
Openwrt - 旁路由DHCP服务下实现外网的端口映射
局域网内,如果网络模型为旁路由做DHCP服务,那么主路由添加端口映射后,外网请求内网端口映射的机器,会发现请求是成功的,但没有返回
原因是内网的设备网关地址并不是主路由而是旁路由,解决方案有很多,这里提供一个较为简便的方案(PS:不考虑网络性能损耗),直接使用旁路由转发
将主路由的端口映射到旁路由,举例
- 主路由IP:10.0.0.1
- 旁路由IP:10.0.0.2
- 设备A的IP:10.0.0.78
- 等待转发的转口:10.0.0.1:8008->10.0.0.78:8008
首先在主路由添加端口映射,将8008映射到旁路由的8008,然后在旁路由中添加一条流量转发规则即可
iptables -t nat -A PREROUTING -p tcp --dport 8009 -j DNAT --to-destination 10.0.0.78
Network 2020-10-29 10:03:11
Visual Studio Code - Python代码Yapf自动格式化(换行设置)
首先需要安装Yapf,如果是远程开发,则需要在远程的机器上安装
pip3 install yapf
接着在VS Code菜单栏按顺序选择 File->Preferences->Settings,然后搜索 Python Formatting Provider,选择Yapf
接着在第二行Yapf添加两个参数,如图所示,分别是
--style
{column_limit:200}
即换行间隔字符为200
Software Tools IDE 2020-10-16 06:14:03
Hyper-v 导入硬盘文件到指定的虚拟机
在宿主机上使用如下指令,format的格式自选
qm importdisk [你的虚拟机ID(例如100)] [你的硬盘文件] local-Thin --format=qcow2
Virtualization Technology 2020-08-10 13:12:34
Hyper-v 虚拟机迁移至 Proxmox
在Hyper-v选出导出你的虚拟机快照(或虚拟机本身或直接拿磁盘文件都可以),这里假设我有一个Windows7虚拟机要转移到Proxmox上,则导出Windows7虚拟机到D盘根目录下
导出后找到磁盘文件(如果是导出则在导出的文件夹下的Virtual Hard Disks内),文件名往往是 虚拟机名称.VHDX,将这个文件发送到你的Proxmox机器上,放至有权限的任意目录,我的Windows7
scp d:\\Windows7.VHDX root@10.0.0.1:/tmp/
- SSH登录到Proxmox宿主机上,并使用如下命令检查你上传的Hyper-V磁盘文件是否有问题
qemu-img check -r all Windows7.vhdx
打开Proxmox网页并创建一个虚拟机,按照你原本虚拟机的配置进行选择,只需更改磁盘配置为一个1G大小的磁盘文件,创建完成之后记住这个文件的名字,后面我们直接转换上传的VHDX文件来替换这个1G大小的虚拟机磁盘,创建后如下图所示
在你的Proxmox找到第4步创建的虚拟机磁盘文件名,命令如下,找到后顺便删了
root@chancel:/tmp# find / -name '*101-disk-0.qcow2'
/var/lib/vz/images/101/vm-101-disk-0.qcow2
root@chancel:/tmp# rm -f /var/lib/vz/images/101/vm-101-disk-0.qcow2
- 转换原本的虚拟机磁盘文件(VHDX)成Proxmox的QCOW2格式,并且保证输出到刚才创建
root@chancel:/tmp# qemu-img convert -O qcow2 Windows7.vhdx /var/lib/vz/images/101/vm-101-disk-0.qcow2
- 启动你的虚拟机
Virtualization Technology 2020-07-25 21:49:20
Gnome3 - Alt+Tab仅在当前桌面切换(不切换工作区)
设置如下
gsettings set org.gnome.shell.app-switcher current-workspace-only true
Operating System Linux 2020-06-24 10:59:51
Transmission - Transmission-daemon.service: Main process exited, code=killed, status=9/KILL
最近给一台256M Ubuntu VPS安排上Transmission,结果启动之后总是莫名其妙崩溃了
使用 sudo journalctl -u transmission-daemon 从日志里只能看到下面的输出,这输出来跟没输出了似的..
Jun 01 15:25:41 chancel systemd[1]: transmission-daemon.service: Main process exited, code=killed, status=9/KILL
Jun 01 15:25:41 chancel systemd[1]: transmission-daemon.service: Failed with result 'signal'.
Jun 01 15:25:50 chancel systemd[1]: Starting Transmission BitTorrent Daemon...
大致猜测跟内存有关系,因为安装还是以往那样安装,这台唯一奇葩的地方就是内存小
先看看内存情况 free -h,输出如下
chancel@chancel:~$ free -h
total used free shared buff/cache available
Mem: 229M 191M 3.4M 8K 34M 30M
尝试创建swapfile文件来缓存
sudo touch /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024000
sudo mkswap /swapfile
sudo swapon /swapfile
重启之后果然就正常了,此时内存输出如下
chancel@chancel:~$ free -h
total used free shared buff/cache available
Mem: 229M 191M 3.4M 8K 34M 30M
Swap: 999M 202M 797M
为了正常使用,建议最好开机挂载swapfile
Operating System 2020-06-01 23:45:28
Proxmox - PVE虚拟Windows10 CPU 占用高
使用PVE虚拟Windows10时,发现CPU占用特别高,于是更改了虚拟机的Processors设置,改为HOST并调整核心数一致,此时Windows理论性能应等同于物理机
但奇怪的是开启Windows之后CPU占用依旧非常高,开个Chrome都能占用100%,查看系统设置,发现Windows系统属性处仍然显示KVM CPU
很明显更改没生效,已确认重启过,最后思来想去,发现是快速启动的问题
在控制面板-硬件和声音-电源选项-选择电源按钮功能处关闭快速启动之后重启即正常(奇怪的是他那里写着快速启动不影响重启),如下图
Operating System 2020-05-07 15:15:09