在 debian 服务器上安装 ftp
FTP(File Transfer Protocol,文件传输协议)是一种标准的网络协议,用于在远程网络之间传输文件。注意区分 SFTP,其是 SSH 文件传输协议 (SSH File Transfer Protocol),该协议具有安全性。SCP 代表安全复制协议,它对Linux 系统之间的文件传输进行加密。而 FTP 不具有安全性,是明文传输,但可以搭配 SSL/TLS,实现 FTPS 进行安全传输。本篇以 Debian 10 为例,所有命令以普通用户运行,部分命令可能需要 sudo 权限。
安装12sudo apt updatesudo apt install vsftpd
安装后,系统默认会配置自启动,查看服务是否启动
1sudo systemctl status vsftpd
配置申请证书安装后,最重要的就是配置,首先配置 SSL,申请证书请查看我的另一篇:搭配 nginx、cloudflare 和 acme.sh 让网站走 https 协议
这里给出一种自签证书的方法,可以自定义证书有效期。假设,我们要创建一个有效期为 10 年的 2048 为私钥和自签名 ...
bitnami redmine 的安装
Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具,可以同时处理多个项目。它集成了项目管理所需的各项功能,包括日历、燃尽图和甘特图以协助可视化表现项目与时间限制,问题跟踪和版本控制。本篇介绍如何安装 Redmine,以 Bitnami Redmine + Debian 10 为例,所有命令以普通用户 jinzhongxu 运行,但需要 sudo 权限。
下载安装 Redmine这里提供两个版本,均是 bitnami 官网版本:
bitnami-redmine-3.4.6-5-linux-x64-installer.run
bitnami-redmine-4.2.1-3-linux-x64-installer.run
本篇以 4.2.1-3 为例,并使用 nginx 作为反向代理。需要注意的是,需要开放个别端口:
3690:svnserve
3306:mysqld
8443:httpd
8080:redmine
80,443:nginx
1234567891011121314151617181920212223242526272829# 版本 ...
debian 安装 mysql 数据库
MySQL 数据库一个关系数据库管理系统 (Relational Database Management System, RDBMS) ,最初是有瑞典的MySQL AB 公司开发,2008 年该公司被昇阳微系统收购。2009 年,甲骨文公司收购昇阳微系统公司,MySQL 就成为了 Oracle 产品。其性能高、成本低、可靠性好,一度成为最流行的开源数据库。非常流行的开源软件组合 LAMP 中的 “M” 指的就是 MySQL。MySQL 分为免费的社区版与收费的标准版、企业版等。甲骨文公司收购 MySQL 后,大幅调涨 MySQL 商业版的售价,自由软体社群们对于 Oracle 是否还会持续支援 MySQL 社区版( MySQL 之中唯一的免费版本)有所隐忧。MySQL的创始人麦克尔·维德纽斯以 MySQL 为基础,成立分支计划 MariaDB。如果只是安装并使用 MySQL,不需要 Oracle 的技术支持,或一些企业版工具或插件,或修改 MySQL 源代码并作为闭源的软件等等情形。可以继续使用社区版。本篇介绍如何在 Debian 系统上安装 MySQL,所有命令以普通用户运行,但需要 ...
python 遍历目录获取所有文件
利用 Python 进行文件夹遍历有很多种方法,本篇介绍常用的两种方法,这些方法是内建模块中的方法,速度较快。
os.walk 和 os.scandir两种方法都是在 os 库实现的,分别是 os.walk,os.scandir,其中后者效率更高些。
1import os
1234567def walk(dirs): files_all = [] for root, d, files in os.walk(dirs): for file in files: file_path = os.path.join(root, file) files_all.append(file_path) return files_all
12345678def scan(dirs): files_all = [] for item in os.scandir(dirs): if item.is_file(): files_all.append(item.path) ...
nvidia driver 出现 library version mismatch、couldn't communicate with the NVIDIA driver.
深度学习模型往往需要 GPU 加速计算,因此,需要为服务器安装 NVIDIA 驱动。但,因为系统(如 Ubuntu)有自动更新往往会导致 NVIDIA 驱动版本和库版本不匹配,导致 nvidia-smi 命令无法使用。本篇以 Ubuntu 系统为例,所有命令以普通用户运行,有些命令需要 sudo 权限。
问题描述当在 Ubuntu 系统上安装了显卡驱动后,因为 Ubuntu 上的命令 /usr/bin/unattended-upgrade 会在后台自动更新系统,如安全相关的补丁内容等。有时候,会自动更新 NVIDIA 的驱动(查看自动更新历史:cat /var/log/apt/history.log)。这会导致系统运行中的 NVIDIA 驱动版本(查看方法:cat /proc/driver/nvidia/version)与安装的驱动版本(查看方法:sudo dpkg -l | grep nvidia)不一致。最终导致,查看显卡信息的命令:nvidia-smi 无法使用,报如下错误:
12$ nvidia-smiFailed to initialize NVML: Driver/li ...
conda 更新 python 版本
当使用 Miniconda 安装 Python 后,除了使用虚拟环境外,有时,我们还需要更新主环境中的 Python 版本,本篇介绍如何更新主环境中的 Python 版本到最新。
当主环境版本不需要大版本更新时当主环境的 Python 版本不需要大版本更新时,如最初安装的 Python 版本是 3.9.5,现在 Python 官网已经发布了 3.9.13,此时,我们更新小版本到 Anaconda 中的 Python3.9 到最新。
12345678# 首先更新 conda 到最新,测试中如果当前处在 conda activate 状态下,需要更新 conda 两次conda update conda# 如果遇到更新失败,可尝试强制更新conda update --force conda# 然后更新 python 到 Anaconda 中的最新。注意,一般 Anaconda 中维护的 python 版本会低于官网最新版conda install python=3.9
当主环境版本需要大版本更新时当主环境的 Python 版本需要大版本更新,如最初安装的 Python 版本是 3. ...
远程桌面软件 RustDesk
远程办公是近几年比较流行的办公方式,这大多是由于疫情的影响。比较流行的远程桌面控制软件有中国的向日葵、德国的 Teamviewer、中国的 ToDesk、中国的 RustDesk。本篇介绍 RustDesk,不仅是因为它是国产软件,更重要它是开源的,并且能够使用自建中继服务器,这给用户保留了更好的定制性和隐私性。本篇以 Debian 10 为例演示。
安装RustDesk 提供了各平台的版本,如 Windows, Mac, Ubuntu, fedora, Android, iOS, Web 等。安装非常简单,直接从 github rustdesk下载对应的版本就好。
安装后会自动分配一个 ID 和密码,作为唯一标识。当别的客户端连接本电脑时,需要输入该 ID 和密码。
自建中继服务器默认的软件已经提供免费的中继服务器,但带宽有限,缺乏隐私性。因此,RustDesk 提供了可自建中继服务器的方法,使用自己的服务器作为桥梁连接自己的电脑,获得可控的网速以及更高的安全性。
假设你已经有了一台具有公网 IP 的 vps 服务器(硬件要求很低,最低配置的云服务器就可以了,CPU 和内存要求都 ...
pandoc 标记语言转换工具
Pandoc 是使用 Haskell 语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。本篇以 Ubuntu 18.04 为例进行演示。
安装安装 pandoc 可以通过如下方法
12sudo apt updatesudo apt install pandoc
示例使用 pandoc 可以进行很多种文本格式的转换,如 docx, markdown, textile, pdf 等等。下表更详细的列出:
Pandoc 可读取的源格式
Pandoc 可生成的目标格式
Markdown
HTML格式:包括XHTML,HTML5及HTML slide
reStructuredText
文字处理软件格式:包括docx、odt、OpenDocument XML
Textile
电子书格式:包括EPUB(第2版及第3版)、FictionBook2
HTML
技术文档格式:包括DocBook、GNU TexInfo、Groff manpages、Haddock
DocBook
页面布局格式:In ...
python 中的小数舍入方法
数学中,四舍五入是我们经常使用的,用来对小数保留有效位精度,得到近似值,节省书写,如 $3.141592653589793… \approx 3.14$,这同样也方便记忆一些无理数的近似值,当计算时也比较方便。但除了四舍五入,还存在一些其他的小数舍入方法,如“四舍六入五成双”等。Python 中内置的 round 函数采用哪种舍入方法呢?
四舍五入四舍五入是我们小学时就学习的一种小数舍入方法。如
13.141592653589793...
保留 3 位小数,则为
13.142
因为,第 4 位是数值 5,根据四舍五入原则(小于等于 4 的舍去,大于等于 5 的舍入进 1),因此,进行舍入进 1.
四舍六入五成双四舍六入五成双和四舍五入的区别就是,当舍入位后没有数值,且舍入位是 5 时,需要根据舍入位前面一位的数值奇偶性进行舍入。
基本原则是:
当舍入位小于等于 4 时,舍去;
当舍入位大于等于 6 时,舍入进 1;
当舍入位等于 5 时,分两种情况:1)舍入位 5 后面有数值,则舍入进 1;2)舍入位 5 后面没有数值,看舍入位 5 前面的数值,当其是奇数时,舍入进 1,当其 ...
linux 中利用 cpulimit 限制 CPU 使用率
CPU 的使用率过高会影响 Linux 系统的使用体验,如导致 CPU 温度过高,影响使用寿命等。本篇介绍如何限制 CPU 使用率,保持 Linux 系统的正常、稳定运行。以 Ubuntu 18.04 为例,所有命令以普通用户运行。
安装 cpulimitUbuntu/Debian 系统安装方法如下:
12sudo apt updatesudo apt install cpulimit
Centos/RedHat 系统安装方法如下:
1sudo yum install cpulimit
使用方法123# NUM 为整数值,默认为对 1 个 CPU的限制,多个 CPU 时可以累计,如 NUM * CPU_NUM# PID 为进程 ID,限制该进程的 CPU 使用率为 NUM%cpulimit -l NUM -p PID
常用参数:
-e 按照程序名限制;
-P 按照程序绝对路径限制;
-b 后台运行 cpulimit;
-f 前台运行;
-l 允许的CPU百分比,最低为1%.
注意:
更多参数可通过 man ...
http 状态码
在进行网站开发中,总会遇到状态码解读问题,本篇梳理各种状态码的意义。
http 状态码分类
分类
分类描述
1**
请求已被接受,需要继续处理
2**
成功,操作被成功接收并处理
3**
重定向,需要进一步的操作以完成请求
4**
客户端错误,请求包含语法错误或无法完成请求
5**
服务器错误,服务器在处理请求的过程中发生了错误
http 状态码意义
状态码
状态码意义
100
这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。
101
服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。
102
由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
200
请求成功。一般用于GET与POST请求,出现此状态码是表示正常状态。
201
已创建。成功请求并创建了新的资源
202
已接受。已经接受请求,但未处理完成
203
服务器已成功处理了请求,但返回的实体头部元信息不是在原 ...