ubuntu snap 配置不更新新软件

马化云 发表了文章 • 0 个评论 • 230 次浏览 • 2022-12-17 14:20 • 来自相关话题

它默认会自动更新软件,非常的烦。
 
网上的禁用方法
$ snap refresh --hold
error: unknown flag `hold'
在ubuntu20.04上是没有用的。因为它的snap不是最新的。要在ubuntu22.04上才可以。
 
在ubuntu 20.04上,
 
$ sudo snap set system refresh.hold="2030-01-01T01:00:00-01:00"
$ sudo snap set system refresh.metered=hold
网上说 snap最多只能设置60天内不更新,所以还需要配合crontab,在计划任务里面设置时间。
 
  查看全部
它默认会自动更新软件,非常的烦。
 
网上的禁用方法
$ snap refresh --hold
error: unknown flag `hold'

在ubuntu20.04上是没有用的。因为它的snap不是最新的。要在ubuntu22.04上才可以。
 
在ubuntu 20.04上,
 
$ sudo snap set system refresh.hold="2030-01-01T01:00:00-01:00"
$ sudo snap set system refresh.metered=hold

网上说 snap最多只能设置60天内不更新,所以还需要配合crontab,在计划任务里面设置时间。
 
 

ubuntu snap 下载指定版本的pycharm goland

李魔佛 发表了文章 • 0 个评论 • 267 次浏览 • 2022-12-17 13:24 • 来自相关话题

之前用的pycharm,goland被snap自动更新,更新到2022.3 , 导致之前的ida-eval-resetter 无法使用。
 
所以只好回滚到指定的pycharm版本。
 
使用snap可以下载指定版本的pycharm和goland
 sudo snap install pycharm-professional --channel=2021.2/stable --classic 
上面的命令下载  2021.2/stable的版本的pycharm
 
那么怎么查看pycharm的版本?snap info pycharm-professionalname: pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic
只要在里面挑一个好一点的版本就好了。
 
  查看全部
之前用的pycharm,goland被snap自动更新,更新到2022.3 , 导致之前的ida-eval-resetter 无法使用。
 
所以只好回滚到指定的pycharm版本。
 
使用snap可以下载指定版本的pycharm和goland
 
sudo snap install pycharm-professional --channel=2021.2/stable --classic
 
上面的命令下载  2021.2/stable的版本的pycharm
 
那么怎么查看pycharm的版本?
snap info pycharm-professional
name:      pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic

只要在里面挑一个好一点的版本就好了。
 
 

Linux 运行resilio (一个跨平台的资源共享类软件)【附pro license】

马化云 发表了文章 • 0 个评论 • 391 次浏览 • 2022-11-27 18:38 • 来自相关话题

什么是resilio ?

只需要知道一个分享密钥key,即可同步整个文件夹了,不需要第三方服务器,不受存储空间和流量限制,Resilio Sync的数据不在云端,而是存储在本地,传输速度基本上只受用户网络带宽的制约,它可以支持多人同时同步,而且,越多人对文件夹进行同步,则同步速度越快,没有审查,不过现在已经属于404 的产品了,不过如果找到神key,资源还是蛮丰富的。

安装过程:

1、打开官网下载安装Resilio Sync,国内用户需要自备网络环境。
对于linux , ubuntu,解压后实际只有一个可执行文件,猜测这个很可能是golang写的。因为大部分golang的程序都可以编译成一个文件。 $ ./rslsync
By using this application, you agree to our Privacy Policy, Terms of Use and End User License Agreement.
https://www.resilio.com/legal/privacy
https://www.resilio.com/legal/terms-of-use
https://www.resilio.com/legal/eula 

运行后rslsync是在后台运行的。 不会返回访问界面,当然linux下也不会有界面。 需要你打开浏览器, 输入 http://127.0.0.1:8888
就可以看到resilio的内容了。
 





 

2、下载Resilio Sync授权文件:ResilioSyncPro.btskey. 附件里面

3、然后解压,解压后文件后缀是btskey,打开安装好的Resilio Sync,打开设置的License界面,点击Apply License

这个时候页面是空的,没有任何空的内容。 这个时候就需要一些神key。因为上面也说了,resilio是通过分享key,来获取资源的。
比如zlibrary,有人共享了不少电子书在某个文件夹里面。 只要找到一个key,你就可以找到一个资源分享的组织。
 





 
需要电子书的key,可以关注公众号:

 
回复:电子书key
可以获取zibibrary 几个T的电子书。

  查看全部
什么是resilio ?

只需要知道一个分享密钥key,即可同步整个文件夹了,不需要第三方服务器,不受存储空间和流量限制,Resilio Sync的数据不在云端,而是存储在本地,传输速度基本上只受用户网络带宽的制约,它可以支持多人同时同步,而且,越多人对文件夹进行同步,则同步速度越快,没有审查,不过现在已经属于404 的产品了,不过如果找到神key,资源还是蛮丰富的。

安装过程:

1、打开官网下载安装Resilio Sync,国内用户需要自备网络环境。
对于linux , ubuntu,解压后实际只有一个可执行文件,猜测这个很可能是golang写的。因为大部分golang的程序都可以编译成一个文件。
 $ ./rslsync  
By using this application, you agree to our Privacy Policy, Terms of Use and End User License Agreement.
https://www.resilio.com/legal/privacy
https://www.resilio.com/legal/terms-of-use
https://www.resilio.com/legal/eula
 

运行后rslsync是在后台运行的。 不会返回访问界面,当然linux下也不会有界面。 需要你打开浏览器, 输入 http://127.0.0.1:8888
就可以看到resilio的内容了。
 

20221127001.jpg

 

2、下载Resilio Sync授权文件:ResilioSyncPro.btskey. 附件里面

3、然后解压,解压后文件后缀是btskey,打开安装好的Resilio Sync,打开设置的License界面,点击Apply License

这个时候页面是空的,没有任何空的内容。 这个时候就需要一些神key。因为上面也说了,resilio是通过分享key,来获取资源的。
比如zlibrary,有人共享了不少电子书在某个文件夹里面。 只要找到一个key,你就可以找到一个资源分享的组织。
 

20221127003.jpg

 
需要电子书的key,可以关注公众号:

 
回复:电子书key
可以获取zibibrary 几个T的电子书。

 

macbook m1版本 兼容性问题

马化云 发表了文章 • 0 个评论 • 457 次浏览 • 2022-10-18 11:36 • 来自相关话题

m1 是arm版本,以前的旧软件就不要指望装到m1了,除非还有开发人员进行移植。 
 
比如你有个软件依赖旧版本的postgresql,那么就没有办法在m1上搞个旧版本的postgresql了,不过新版的postgresql是支持的。
 
这种向前兼容性很差的问题,如果对于项目,日常高频使用软件里有旧版应用,应该会挺难受,只能早一些替代方案。
 





  查看全部
m1 是arm版本,以前的旧软件就不要指望装到m1了,除非还有开发人员进行移植。 
 
比如你有个软件依赖旧版本的postgresql,那么就没有办法在m1上搞个旧版本的postgresql了,不过新版的postgresql是支持的。
 
这种向前兼容性很差的问题,如果对于项目,日常高频使用软件里有旧版应用,应该会挺难受,只能早一些替代方案。
 

18f3ee2965a567d24461c1afd663af13.jpeg

 

ubuntu安装z.lua 路径跳转工具

马化云 发表了文章 • 0 个评论 • 446 次浏览 • 2022-10-15 17:06 • 来自相关话题

z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。

正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。 
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。
安装步骤:
官网太蛋疼,没有写好。
 
下面是个人的安装步骤,在ubuntu20上测试的。
 
1. 安装lua
sudo apt install lua5.3
 
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url]

 
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
 
下载后记录它的 目录:
比如:
/home/root/tool/z.lua
3.  然后配置bash shell
 
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
 
bash:
 
在 .bashrc 文件最后加上这一行

eval "$(lua /path/to/z.lua --init bash)"

 
zsh:
在 .zshrc 文件最后加上这一行

eval "$(lua /path/to/z.lua --init zsh)"
 
 
Posix Shells:
 
 
在.profile 文件最后一行加入这一行

eval "$(lua /path/to/z.lua --init posix)"
 
 
4. 重启shell ,注销系统或者 source ~/.zshrc  激活新的shell
 
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l 
 





 
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
 
 

关注公众号,回复 z.lua 获取 z.lua 安装包
  查看全部
z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。

正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。
 
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。

安装步骤:
官网太蛋疼,没有写好。
 
下面是个人的安装步骤,在ubuntu20上测试的。
 
1. 安装lua
sudo apt install lua5.3
 
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url] 

 
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
 
下载后记录它的 目录:
比如:
/home/root/tool/z.lua

3.  然后配置bash shell
 
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
 
bash:
 
在 .bashrc 文件最后加上这一行

eval "$(lua /path/to/z.lua --init bash)"

 
zsh:
在 .zshrc 文件最后加上这一行

eval "$(lua /path/to/z.lua --init zsh)"
 
 
Posix Shells:
 
 
在.profile 文件最后一行加入这一行

eval "$(lua /path/to/z.lua --init posix)"
 
 
4. 重启shell ,注销系统或者 source ~/.zshrc  激活新的shell
 
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l 
 

20221015001.jpg

 
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
 
 

关注公众号,回复 z.lua 获取 z.lua 安装包
 

ubuntu 一键安装微信小程序开发工具

马化云 发表了文章 • 0 个评论 • 436 次浏览 • 2022-09-19 00:17 • 来自相关话题

腾讯有点恶心,linux下就不能提供一个官方的开发工具? 最初的qq logo都是抄linux的。在开源界,腾讯还真的无作为,还作为障碍般各种阻挠。

有个人开发者在github上做了linux下的微信小程序开发工具。
试了下还可以,不用再开个虚拟机跑windows,然后就为了使用微信小程序的开发工具。
 
安装方法:
 sudo snap install wechat-devtools

前提是ubuntu版本大于14.04, 或者已经内置了snap商店。






  查看全部
腾讯有点恶心,linux下就不能提供一个官方的开发工具? 最初的qq logo都是抄linux的。在开源界,腾讯还真的无作为,还作为障碍般各种阻挠。

有个人开发者在github上做了linux下的微信小程序开发工具。
试了下还可以,不用再开个虚拟机跑windows,然后就为了使用微信小程序的开发工具。
 
安装方法:
 
sudo snap install wechat-devtools


前提是ubuntu版本大于14.04, 或者已经内置了snap商店。


linuxwechatdev.png

 

程序员是怎样删除安卓手机的垃圾文件?

李魔佛 发表了文章 • 0 个评论 • 570 次浏览 • 2022-09-14 12:08 • 来自相关话题

有一台vivo的手机,用了也就1-2年,64GB的内部存储已经所剩无几了,并且每次清理垃圾文件,并无法清理一些系统产生的垃圾文件。

以至于手机的的可用空间越来越少,内置的清理垃圾的功能越来越鸡肋。而第三方的垃圾清理应用只会引来更多的垃圾文件。
 

 
 
身为一名程序员,就得用geek一点的方法彻底删除垃圾文件,尽可能地释放系统的空间。

由于平时使用的开发环境是Linux,所以下面环境是在Linux下操作,windows的用户应该也可以在git bash下操作。
 
手机usb 连接电脑
 
使用usb线连接linux电脑,不一定要adb的功能,但需要电脑能够识别手机的内部存储即可。

 
 
然后点击“内部存储设备”, 在文件内右键,进入Terminal 终端。
 

 
 
执行命令
du . -h --max-depth=1
简单解释一下这个语句。 就是显示当前目录下,第一层目录的占用存储大小情况。-h, human效果,人性化,自动转换文件大小单位。

--max-depth 是显示目录层级数目,如果选择2-3-4等目录,则会把子目录,子子目录的存储大小都显示出来,不过运行数据也会随之变慢。

 
上面命令一下子就把手机根目录下所有的目录的占用大小都列出来了。可以看到上面红框的地方,是一些缓存没用的东西,我们直接用命令 rm -rf 删除。

或者也可以在文件管理器里面直接删除。

如果有些目录底下有多层目录,那么就是把--max-depth 的值调大一些。 这样就知道他子目录的占用空间情况。

如果只想看看微信文件夹下的空间占用,可以指定目录:
du /Weixin/ -h --max-depth=3
这样就知道哪个目录占用的空间最大,然后点击进去,把没用的目录逐个删除。

经过笔者的测试,使用上述操作后,手机可用存储空间释放了40%的空间。主要是一些app下载的内容,由于app被清理了,结果这些下载内容成了孤立的文件,没有索引到对应的app,一直残留在手机内存。
 
 
  查看全部
有一台vivo的手机,用了也就1-2年,64GB的内部存储已经所剩无几了,并且每次清理垃圾文件,并无法清理一些系统产生的垃圾文件。

以至于手机的的可用空间越来越少,内置的清理垃圾的功能越来越鸡肋。而第三方的垃圾清理应用只会引来更多的垃圾文件。
 

 
 
身为一名程序员,就得用geek一点的方法彻底删除垃圾文件,尽可能地释放系统的空间。

由于平时使用的开发环境是Linux,所以下面环境是在Linux下操作,windows的用户应该也可以在git bash下操作。
 
手机usb 连接电脑
 
使用usb线连接linux电脑,不一定要adb的功能,但需要电脑能够识别手机的内部存储即可。

 
 
然后点击“内部存储设备”, 在文件内右键,进入Terminal 终端。
 

 
 
执行命令
du . -h --max-depth=1

简单解释一下这个语句。 就是显示当前目录下,第一层目录的占用存储大小情况。-h, human效果,人性化,自动转换文件大小单位。

--max-depth 是显示目录层级数目,如果选择2-3-4等目录,则会把子目录,子子目录的存储大小都显示出来,不过运行数据也会随之变慢。

 
上面命令一下子就把手机根目录下所有的目录的占用大小都列出来了。可以看到上面红框的地方,是一些缓存没用的东西,我们直接用命令 rm -rf 删除。

或者也可以在文件管理器里面直接删除。

如果有些目录底下有多层目录,那么就是把--max-depth 的值调大一些。 这样就知道他子目录的占用空间情况。

如果只想看看微信文件夹下的空间占用,可以指定目录:
du /Weixin/ -h --max-depth=3

这样就知道哪个目录占用的空间最大,然后点击进去,把没用的目录逐个删除。

经过笔者的测试,使用上述操作后,手机可用存储空间释放了40%的空间。主要是一些app下载的内容,由于app被清理了,结果这些下载内容成了孤立的文件,没有索引到对应的app,一直残留在手机内存。
 
 
 

ubuntu/linux 64位 安装 kdb+ (需要证书授权)附下载地址

李魔佛 发表了文章 • 0 个评论 • 421 次浏览 • 2022-09-04 12:14 • 来自相关话题

kdb+是一款高速小巧的时序数据库。32位的版本个人可以随意使用。
64位的版本需要申请授权证书。
申请后得到邮件,里面会有证书。





 
还有64位软件下载地址。文件还是小巧,几百k。没想到一个排名第二的时序数据库,体积居然不到1M。 
需要kdb+ 64位安装文件,可以到文末获取。

下载下来解压。
比如解压到目录:
~/tool/l64/
目录下有一个文件夹 l64和一个q.k的文件
l64子文件夹下只有一个文件q , 他是一个可执行文件。在linux下的命令行可以直接运行 ./q$ ./q
KDB+ 4.0 2022.05.11 Copyright (C) 1993-2022 Kx Systems
l64/ 4()core 23934MB xda xda-linux 127.0.1.1

'licence error: k4.lic提示缺失证书。

然后把证书文件拷贝到目录 ~/tool/l64/
 
这时如果直接运行 ./q 但是会报错.$ ./q -p 5001
KDB+ 4.0 2022.05.11 Copyright (C) 1993-2022 Kx Systems
l64/ 4(24)core 23934MB xda xda-linux 127.0.1.1 EXPIRE 2023.07.18 xxxxx@126.com KXCE #

'2022.09.04T11:34:18.272 couldn't connect to license daemon -- exiting
 这是因为没有设置环境变量。
 
windows下也需要设置环境部,linux同理也需要。
 
linux:
export QHOME="/home/root/tool/l64/"
 
或者放到bashrc文件里面。
 
正常运行,会显示 q)
 





 
 kdb+ 64位安装文件获取方式:
关注后 回复 kdb+


 
 
 
 
 
 
  查看全部
kdb+是一款高速小巧的时序数据库。32位的版本个人可以随意使用。
64位的版本需要申请授权证书。
申请后得到邮件,里面会有证书。

20220904003.png

 
还有64位软件下载地址。文件还是小巧,几百k。没想到一个排名第二的时序数据库,体积居然不到1M。 
需要kdb+ 64位安装文件,可以到文末获取。

下载下来解压。
比如解压到目录:
~/tool/l64/
目录下有一个文件夹 l64和一个q.k的文件
l64子文件夹下只有一个文件q , 他是一个可执行文件。在linux下的命令行可以直接运行 ./q
$ ./q
KDB+ 4.0 2022.05.11 Copyright (C) 1993-2022 Kx Systems
l64/ 4()core 23934MB xda xda-linux 127.0.1.1

'licence error: k4.lic
提示缺失证书。

然后把证书文件拷贝到目录 ~/tool/l64/
 
这时如果直接运行 ./q 但是会报错.
$ ./q -p 5001
KDB+ 4.0 2022.05.11 Copyright (C) 1993-2022 Kx Systems
l64/ 4(24)core 23934MB xda xda-linux 127.0.1.1 EXPIRE 2023.07.18 xxxxx@126.com KXCE #

'2022.09.04T11:34:18.272 couldn't connect to license daemon -- exiting

 这是因为没有设置环境变量。
 
windows下也需要设置环境部,linux同理也需要。
 
linux:
export QHOME="/home/root/tool/l64/"
 
或者放到bashrc文件里面。
 
正常运行,会显示 q)
 

20220904004.png

 
 kdb+ 64位安装文件获取方式:
关注后 回复 kdb+


 
 
 
 
 
 
 

ubuntu 安装ciso8601库 失败, 已解决

李魔佛 发表了文章 • 0 个评论 • 1183 次浏览 • 2022-07-22 12:01 • 来自相关话题

ubuntu20; ciso8601库是一个高性能的时间解析库,基于C底层写的。pip install ciso8601 报错 :  Collecting setuptools>=40.8.0
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/a4/53/bfc6409447ca024558b8b19d055de94c813c3e32c0296c48a0873a161cf5/setuptools-63.2.0-py3-none-any.whl
Downloading setuptools-63.2.0-py3-none-any.whl (1.2 MB)
━━━━╸ 0.1/1.2 MB 102.5 kB/s eta 0:00:11
ERROR: Exception:
Traceback (most recent call last):
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 435, in _error_catcher
yield
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 516, in read
data = self._fp.read(amt) if not fp_closed else b""
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/cachecontrol/filewrapper.py", line 90, in read
data = self.__fp.read(amt)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/http/client.py", line 462, in read
n = self.readinto(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/http/client.py", line 506, in readinto
n = self.fp.readinto(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/socket.py", line 704, in readinto
return self._sock.recv_into(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper
status = run_func(*args)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/req_command.py", line 205, in wrapper
return func(self, options, args)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/commands/install.py", line 341, in run
requirement_set = resolver.resolve(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
result = self._result = resolver.resolve(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria
if not criterion.candidates:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/structs.py", line 151, in __bool__
return bool(self._sequence)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
return any(self)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
return (c for c in iterator if id(c) not in self._incompatible_ids)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
candidate = func()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/factory.py", line 215, in _make_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 291, in __init__
super().__init__(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 161, in __init__
self.dist = self._prepare()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 230, in _prepare
dist = self._prepare_distribution()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 302, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 428, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 473, in _prepare_linked_requirement
local_file = unpack_url(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 155, in unpack_url
file = get_http_url(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 96, in get_http_url
from_path, content_type = download(link, temp_dir.path)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/network/download.py", line 146, in __call__
for chunk in chunks:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/progress_bars.py", line 53, in _rich_progress_bar
for chunk in iterable:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/network/utils.py", line 63, in response_chunks
for chunk in response.raw.stream(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 573, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 538, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 440, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
 
 
看样子,是setuptool的问题。 为了避免动这个默认库,可以安装降级版本的ciso。
pip install ciso8601==1.0.7
 





  查看全部
ubuntu20; ciso8601库是一个高性能的时间解析库,基于C底层写的。pip install ciso8601 报错 : 
      Collecting setuptools>=40.8.0
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/a4/53/bfc6409447ca024558b8b19d055de94c813c3e32c0296c48a0873a161cf5/setuptools-63.2.0-py3-none-any.whl
Downloading setuptools-63.2.0-py3-none-any.whl (1.2 MB)
━━━━╸ 0.1/1.2 MB 102.5 kB/s eta 0:00:11
ERROR: Exception:
Traceback (most recent call last):
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 435, in _error_catcher
yield
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 516, in read
data = self._fp.read(amt) if not fp_closed else b""
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/cachecontrol/filewrapper.py", line 90, in read
data = self.__fp.read(amt)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/http/client.py", line 462, in read
n = self.readinto(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/http/client.py", line 506, in readinto
n = self.fp.readinto(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/socket.py", line 704, in readinto
return self._sock.recv_into(b)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper
status = run_func(*args)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/req_command.py", line 205, in wrapper
return func(self, options, args)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/commands/install.py", line 341, in run
requirement_set = resolver.resolve(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
result = self._result = resolver.resolve(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria
if not criterion.candidates:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/resolvelib/structs.py", line 151, in __bool__
return bool(self._sequence)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
return any(self)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
return (c for c in iterator if id(c) not in self._incompatible_ids)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
candidate = func()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/factory.py", line 215, in _make_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 291, in __init__
super().__init__(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 161, in __init__
self.dist = self._prepare()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 230, in _prepare
dist = self._prepare_distribution()
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/resolution/resolvelib/candidates.py", line 302, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 428, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 473, in _prepare_linked_requirement
local_file = unpack_url(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 155, in unpack_url
file = get_http_url(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/operations/prepare.py", line 96, in get_http_url
from_path, content_type = download(link, temp_dir.path)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/network/download.py", line 146, in __call__
for chunk in chunks:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/cli/progress_bars.py", line 53, in _rich_progress_bar
for chunk in iterable:
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_internal/network/utils.py", line 63, in response_chunks
for chunk in response.raw.stream(
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 573, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 538, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "/home/xda/miniconda3/envs/cpy/lib/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/tmp/pip-standalone-pip-oas0cddc/__env_pip__.zip/pip/_vendor/urllib3/response.py", line 440, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
 
 
看样子,是setuptool的问题。 为了避免动这个默认库,可以安装降级版本的ciso。
pip install ciso8601==1.0.7
 

20220722001.png

 

查询自己平时用的最多的linux命令

李魔佛 发表了文章 • 0 个评论 • 531 次浏览 • 2022-07-18 23:55 • 来自相关话题

你平时使用最多的linux命令是什么呢?
 
可以用一行shell来统计
 
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
得到如下结果:





 
神奇吧。
 
上述语句主要对你的history 返回数据进行统计。 查看全部
你平时使用最多的linux命令是什么呢?
 
可以用一行shell来统计
 
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

得到如下结果:

20220718002.png

 
神奇吧。
 
上述语句主要对你的history 返回数据进行统计。

docker安装的podman报错

李魔佛 发表了文章 • 0 个评论 • 758 次浏览 • 2022-07-17 18:29 • 来自相关话题

podman 报错
ERRO[0000] 'overlay' is not supported over overlayfs
Error: error creating libpod runtime: 'overlay' is not supported over overlayfs: backing file system is unsupported for this graph driver
本来计划在docker里面安装一个docker,启动docker报错,
于是安装了一个podman,结果ps -a的时候报错。
 
唯一的办法,可能就是启动第一个docker的时候使用特权模式, privillage=True
  查看全部
podman 报错
ERRO[0000] 'overlay' is not supported over overlayfs    
Error: error creating libpod runtime: 'overlay' is not supported over overlayfs: backing file system is unsupported for this graph driver

本来计划在docker里面安装一个docker,启动docker报错,
于是安装了一个podman,结果ps -a的时候报错。
 
唯一的办法,可能就是启动第一个docker的时候使用特权模式, privillage=True
 

映射端口 methodot 云主机 外部访问

李魔佛 发表了文章 • 0 个评论 • 639 次浏览 • 2022-07-17 02:36 • 来自相关话题

默认情况下,methodot提供的免费云主机  固定了几个端口给外部访问:





 
如果我们做了web,要怎么映射出来呢?
 
很简单,只要把web端口改为8001 - 8005 之中的一个。
然后用上面表格中对应的端口映射来访问就可以了
 
比如下面的flask代码:
 
from flask import Flask, jsonify

# 最基本的测试

app =Flask(__name__)


@app.route('/about')
def about():
return 'this is about page'

@app.route('/404')
def error_handle():
return '404 error'

@app.route('/')
def error_handle():
return jsonify({'code':100})



if __name__=='__main__':
app.run(host='0.0.0.0',port=8001,debug=True)


 因为8001映射出去的端口是 33442,
 
所以你可以在浏览器访问你的主机:
curl http://xxxxxxxxxxxxx.methodot.com:33442/
 
话说,之前以为这个主机随时提桶跑路的,不过用到现在还好。
每一个应用都是一个docker镜像。 所以你的linux系统是无法使用 systemctl 控制服务启动的。
会包权限不够。 查看全部
默认情况下,methodot提供的免费云主机  固定了几个端口给外部访问:

20220717001.png

 
如果我们做了web,要怎么映射出来呢?
 
很简单,只要把web端口改为8001 - 8005 之中的一个。
然后用上面表格中对应的端口映射来访问就可以了
 
比如下面的flask代码:
 
from flask import Flask, jsonify

# 最基本的测试

app =Flask(__name__)


@app.route('/about')
def about():
return 'this is about page'

@app.route('/404')
def error_handle():
return '404 error'

@app.route('/')
def error_handle():
return jsonify({'code':100})



if __name__=='__main__':
app.run(host='0.0.0.0',port=8001,debug=True)


 因为8001映射出去的端口是 33442,
 
所以你可以在浏览器访问你的主机:
curl http://xxxxxxxxxxxxx.methodot.com:33442/
 
话说,之前以为这个主机随时提桶跑路的,不过用到现在还好。
每一个应用都是一个docker镜像。 所以你的linux系统是无法使用 systemctl 控制服务启动的。
会包权限不够。

vmware player Unable to install all modules. See log for details

李魔佛 发表了文章 • 0 个评论 • 1049 次浏览 • 2022-07-15 13:55 • 来自相关话题

Vmware player

Unable to install all modules. See log for details

ubuntu下的vmware play经常会让更新模块。一起点击确认就可以正常编译更新。

而且一定要编译后才能打开虚拟机系统

但是奇怪的是,最近一次点击 更新,报错:

显示的英文错误信息:

Unable to install all modules. See log for details

看了日志:

     26 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
25 2022-07-15T02:15:09.595Z In(05) host-7426 372 | _Static_assert(e, #e); \
24 2022-07-15T02:15:09.595Z In(05) host-7426 | ^
23 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
22 2022-07-15T02:15:09.595Z In(05) host-7426 215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
21 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_asm_x86.h:227:22: note: in expansion of macro ‘SET_SEGREG’
19 2022-07-15T02:15:09.595Z In(05) host-7426 227 | #define SET_GS(expr) SET_SEGREG(gs, expr)
18 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~~~~~
17 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/common/task.c:2726:10: note: in expansion of macro ‘SET_GS’
16 2022-07-15T02:15:09.595Z In(05) host-7426 2726 | SET_GS(gs);
15 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~
14 2022-07-15T02:15:09.595Z In(05) host-7426 make[2]: *** [scripts/Makefile.build:285: /tmp/modconfig-PB4afO/vmmon-only/common/task.o] Error 1
13 2022-07-15T02:15:09.595Z In(05) host-7426 make[2]: *** Waiting for unfinished jobs....
12 2022-07-15T02:15:09.595Z In(05) host-7426 make[1]: *** [Makefile:1875: /tmp/modconfig-PB4afO/vmmon-only] Error 2
11 2022-07-15T02:15:09.595Z In(05) host-7426 make: *** [Makefile:117: vmmon.ko] Error 2
10 2022-07-15T02:15:09.595Z In(05) host-7426 Using kernel build system.
9 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c: In function ‘VNetFileOpUnlockedIoctl’:
8 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c:966:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
7 2022-07-15T02:15:09.595Z In(05) host-7426 966 | {
6 2022-07-15T02:15:09.595Z In(05) host-7426 | ^
5 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c:976:4: note: here
4 2022-07-15T02:15:09.595Z In(05) host-7426 976 | case SIOCGETAPIVERSION:
3 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~
2 2022-07-15T02:15:09.595Z In(05) host-7426 Skipping BTF generation for /tmp/modconfig-PB4afO/vmnet-only/vmnet.ko due to unavailability of vmlinux
1 2022-07-15T02:15:09.595Z In(05) host-7426 Unable to install all modules. See log for details.


报错信息在这里:

  host-7426 Skipping BTF generation for /tmp/modconfig-PB4afO/vmnet-only/vmnet.ko due to unavailability of vmlinux

host-7426 Unable to install all modules. See log for details
    
遇到问题后就google一番。

果然还是老外大神多。

翻了一个解决方案后,终于找到一个可行的。【所以必须的英语水平还是要的】

可行的方案:

去github下载最新的host-modules

https://github.com/mkubecek/vmware-host-modules


下载一个最新的。

然后解压:unzip w16.2.3-k5.17.zip

得到以下文件 INSTALL
LICENSE
Makefile
README
vmmon-only
vmnet-only
然后我们打包两个文件夹 vmmon-only
vmnet-only tar -cf vmmon.tar vmmon-only
tar -cf vmnet.tar vmnet-only

这时,文件夹下多了2个tar的文件,vmmon.tar和vmnet.tar

然后拷贝到 目录:

/usr/lib/vmware.modules.source
 sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/

之后可以直接编译:
sudo vmware-modconfig --console --install-all

安装完成之后,再次打开vmware player就可以看到:


这样就是成功了。 查看全部
Vmware player

Unable to install all modules. See log for details

ubuntu下的vmware play经常会让更新模块。一起点击确认就可以正常编译更新。

而且一定要编译后才能打开虚拟机系统

但是奇怪的是,最近一次点击 更新,报错:

显示的英文错误信息:

Unable to install all modules. See log for details

看了日志:

    
 26 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
25 2022-07-15T02:15:09.595Z In(05) host-7426 372 | _Static_assert(e, #e); \
24 2022-07-15T02:15:09.595Z In(05) host-7426 | ^
23 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
22 2022-07-15T02:15:09.595Z In(05) host-7426 215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
21 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/./include/vm_asm_x86.h:227:22: note: in expansion of macro ‘SET_SEGREG’
19 2022-07-15T02:15:09.595Z In(05) host-7426 227 | #define SET_GS(expr) SET_SEGREG(gs, expr)
18 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~~~~~
17 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmmon-only/common/task.c:2726:10: note: in expansion of macro ‘SET_GS’
16 2022-07-15T02:15:09.595Z In(05) host-7426 2726 | SET_GS(gs);
15 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~~~
14 2022-07-15T02:15:09.595Z In(05) host-7426 make[2]: *** [scripts/Makefile.build:285: /tmp/modconfig-PB4afO/vmmon-only/common/task.o] Error 1
13 2022-07-15T02:15:09.595Z In(05) host-7426 make[2]: *** Waiting for unfinished jobs....
12 2022-07-15T02:15:09.595Z In(05) host-7426 make[1]: *** [Makefile:1875: /tmp/modconfig-PB4afO/vmmon-only] Error 2
11 2022-07-15T02:15:09.595Z In(05) host-7426 make: *** [Makefile:117: vmmon.ko] Error 2
10 2022-07-15T02:15:09.595Z In(05) host-7426 Using kernel build system.
9 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c: In function ‘VNetFileOpUnlockedIoctl’:
8 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c:966:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
7 2022-07-15T02:15:09.595Z In(05) host-7426 966 | {
6 2022-07-15T02:15:09.595Z In(05) host-7426 | ^
5 2022-07-15T02:15:09.595Z In(05) host-7426 /tmp/modconfig-PB4afO/vmnet-only/driver.c:976:4: note: here
4 2022-07-15T02:15:09.595Z In(05) host-7426 976 | case SIOCGETAPIVERSION:
3 2022-07-15T02:15:09.595Z In(05) host-7426 | ^~~~
2 2022-07-15T02:15:09.595Z In(05) host-7426 Skipping BTF generation for /tmp/modconfig-PB4afO/vmnet-only/vmnet.ko due to unavailability of vmlinux
1 2022-07-15T02:15:09.595Z In(05) host-7426 Unable to install all modules. See log for details.



报错信息在这里:

 
   host-7426 Skipping BTF generation for /tmp/modconfig-PB4afO/vmnet-only/vmnet.ko due to unavailability of vmlinux

host-7426 Unable to install all modules. See log for details

    
遇到问题后就google一番。

果然还是老外大神多。

翻了一个解决方案后,终于找到一个可行的。【所以必须的英语水平还是要的】

可行的方案

去github下载最新的host-modules

https://github.com/mkubecek/vmware-host-modules


下载一个最新的。

然后解压:
unzip w16.2.3-k5.17.zip


得到以下文件
    INSTALL  
LICENSE
Makefile
README
vmmon-only
vmnet-only

然后我们打包两个文件夹 
vmmon-only    
vmnet-only
    tar -cf vmmon.tar vmmon-only
tar -cf vmnet.tar vmnet-only


这时,文件夹下多了2个tar的文件,vmmon.tar和vmnet.tar

然后拷贝到 目录:

/usr/lib/vmware.modules.source
 
sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/


之后可以直接编译:
sudo vmware-modconfig --console --install-all


安装完成之后,再次打开vmware player就可以看到:


这样就是成功了。

linux监控shell进程是否运行,不运行的时候自动启动

李魔佛 发表了文章 • 0 个评论 • 571 次浏览 • 2022-07-13 00:17 • 来自相关话题

脚本很简单。
 保存为monitor.sh
#!/bin/bash
line=$(ps -aux | grep -c /usr/sbin/ssh | grep -v "grep")
# 匹配的行数
if [ $line -eq 1 ];
then
sudo /etc/init.d/ssh restart
# 重启ssh服务
else
echo ssh is running....
# 向日志发送邮件,显示ssh运行中。。。
fi
给个执行权限
chmod +x monitor.sh
 
然后设置定时任务,
比如隔5分钟运行一次上面的脚本
 
*/5 * * * * monitor.sh
 
  查看全部
脚本很简单。
 保存为monitor.sh
#!/bin/bash
line=$(ps -aux | grep -c /usr/sbin/ssh | grep -v "grep")
# 匹配的行数
if [ $line -eq 1 ];
then
sudo /etc/init.d/ssh restart
# 重启ssh服务
else
echo ssh is running....
# 向日志发送邮件,显示ssh运行中。。。
fi

给个执行权限
chmod +x monitor.sh
 
然后设置定时任务,
比如隔5分钟运行一次上面的脚本
 
*/5 * * * * monitor.sh
 
 

aria2c 不能下载https的文件

李魔佛 发表了文章 • 0 个评论 • 1286 次浏览 • 2022-07-10 11:07 • 来自相关话题

下载命令:
aria2c https://openresty.org/download/openresty-1.21.4.1-win64.zip $ aria2c [url]https://openresty.org/download ... 4.zip[/url]

07/10 10:58:58 [NOTICE] Downloading 1 item(s)

07/10 10:58:58 [ERROR] CUID#7 - Download aborted. URI=https://openresty.org/download ... 4.zip
Exception: [AbstractCommand.cc:351] errorCode=1 URI=https://openresty.org/download ... 4.zip
-> [InitiateConnectionCommandFactory.cc:87] errorCode=1 https is not supported yet.

07/10 10:58:58 [NOTICE] Download GID#b9bc95619990e7e4 not complete:

Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================
b9bc95|ERR | n/a|[url]https://openresty.org/download ... 4.zip[/url]
[url]http://openresty.org/download/ ... 4.zip [/url]
Status Legend:
(ERR):error occurred.

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page for details.



只要把https改为http就可以了。(前提是完整没有把http跳转到https)
aria2 http://openresty.org/download/openresty-1.21.4.1-win64.zip 查看全部
下载命令:
aria2c https://openresty.org/download/openresty-1.21.4.1-win64.zip
$ aria2c [url]https://openresty.org/download ... 4.zip[/url]

07/10 10:58:58 [NOTICE] Downloading 1 item(s)

07/10 10:58:58 [ERROR] CUID#7 - Download aborted. URI=https://openresty.org/download ... 4.zip
Exception: [AbstractCommand.cc:351] errorCode=1 URI=https://openresty.org/download ... 4.zip
-> [InitiateConnectionCommandFactory.cc:87] errorCode=1 https is not supported yet.

07/10 10:58:58 [NOTICE] Download GID#b9bc95619990e7e4 not complete:

Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================
b9bc95|ERR | n/a|[url]https://openresty.org/download ... 4.zip[/url]
[url]http://openresty.org/download/ ... 4.zip [/url]
Status Legend:
(ERR):error occurred.

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page for details.



只要把https改为http就可以了。(前提是完整没有把http跳转到https)
aria2 http://openresty.org/download/openresty-1.21.4.1-win64.zip