Windows WSL2配置开发环境

启用WSL2并安装Ubuntu发行版,此处略过

涉及多处Github内容下载,先配置代理:

# 查询宿主机ip
cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " "
export http_proxy=http://宿主机ip:10809
export https_proxy=http://宿主机ip:10809
git config --global http.proxy "http://宿主机ip:10809"
git config --global https.proxy "http://宿主机ip:10809"

安装pyenv:

curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

重启命令行生效

安装pyenv的依赖:

sudo apt install make build-essential libssl-dev zlib1g-dev 
sudo apt install libbz2-dev libreadline-dev libsqlite3-dev wget curl 
sudo apt install llvm libncurses5-dev libncursesw5-dev 

sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev
sudo apt install python-tk python3-tk tk-dev

之后就可以使用pyenv安装指定版本的python,指定全局默认版本:

pyenv install 3.9.18
pyenv global 3.9.18

安装pipx:

sudo apt install pipx
pipx ensurepath

使用pipx安装poetry,设置虚拟环境默认本地目录:

pipx install poetry
poetry config virtualenvs.in-project true

安装nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

重启命令行生效

下载指定版本node:

nvm install 14.21.3

Docker的话安装Docker Desktop,配置使用WSL2为后端

VSCode安装Reomte套件连接WSL

MySQL恢复出现\n错误处理

在使用DBeaver导出导入数据库时,正常导出后获得sql文件,在导入时出现了“Unknown command ‘\n’.”的错误,恢复中断:

只需在导出、导入时增加–default-character-set=utf8参数即可解决:

python-crontab 设置定时任务

人生苦短 我用python

>>复杂方式:

  • 直接操控linux系统配置定时任务有两种方式:

1.系统级:直接编辑 /etc/crontab 文件.
2.用户级:直接执行 crontab -e 命令进行编辑,添加定时任务(实际编辑内容会被写到 /var/spool/cron/crontabs 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本).

  • linux 系统查看已有定时任务命令:

crontab -l

>>简单方式:

  • 通过python-crontab 设置定时任务(创建设置定时任务的.py文件,并运行即可)

pip install python-crontab

>>创建新的py文件, 内容如下:

from crontab import CronTab

# 创建linux系统当前用户的crontab,当然也可以创建其他用户的,但得有足够权限,如:user='root'
cron_manager  = CronTab(user=True)

# 创建任务 指明运行python脚本的命令(crontab的默认执行路径为:当前用户的根路径, 因此需要指定绝对路径)
job = cron_manager.new(command='python /root/hong/crontab_test/data_test.py >> /root/hong/crontab_test/data_result.log 2>&1 &')

# 设置任务执行周期,每两分钟执行一次(更多方式请稍后参见参考链接)
job.setall('*/2 * * * *')

# 将crontab写入linux系统配置文件
my_user_cron.write()

>> 运行py文件,完成! 此时定时任务已经创建(可在linux终端 输入 contrab -l 查看), crontab 会按照设定的时间 定时调用指定路径下的data_test.py文件

docker-compose traefik配置证书

在域名提供商购买下载证书,获取cert、key两个文件,放置在docker-compose目录下的certs文件夹中。

traefik当前(v2.3.2)只能用动态配置文件配置自定证书:

In the above example, we’ve used the file provider to handle these definitions. It is the only available method to configure the certificates (as well as the options and the stores). However, in Kubernetes, the certificates can and must be provided by secrets.

https://doc.traefik.io/traefik/https/tls/

准备traefik动态配置文件dyn.toml,如下:

# dyn.toml

[[tls.certificates]]
  certFile = "/certs/www.xxx.cn.pem"
  keyFile = "/certs/www.xxx.cn.key"

记一次新配置轻量云服务器

1、设置root登录实例
(1)设置 root 密码
sudo passwd root
(2)打开 sshd_config 配置文件
sudo vi /etc/ssh/sshd_config
将 PermitRootLogin 参数值修改为 yes,允许root登录
将 PasswordAuthentication 参数值修改为yes,允许ssh登录
(3)重启ssh服务
sudo service ssh restart

2、新建用户并加入sudo
sudo adduser zjc
sudo usermod -aG sudo zjc

3、设置swap
(1)create a file that will be used as swap
sudo fallocate -l 2G /swapfile
或者
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
(2)Set the file permissions to 600
sudo chmod 600 /swapfile
(3)Create a Linux swap area on the file
sudo mkswap /swapfile
(4)Activate the swap
sudo swapon /swapfile
(5)make the change permanent
sudo vim /etc/fstab
增加 /swapfile swap swap defaults 0 0
(6)swappiness
查看(0为尽量不用,100为尽量用)
cat /proc/sys/vm/swappiness
临时修改
sudo sysctl vm.swappiness=10
持久修改
sudo vim /etc/sysctl.conf
增加 vm.swappiness=10

4、删除swap
(1)deactivate the swap space
sudo swapoff -v /swapfile
(2)remove the swap file entry
sudo vim /etc/fstab
删除 /swapfile swap swap defaults 0 0
(3)remove the actual swapfile file
sudo rm /swapfile

5、安装docker:
官方文档地址:https://docs.docker.com/engine/install/ubuntu/
(1)SET UP THE REPOSITORY
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
(2)INSTALL DOCKER ENGINE
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker zjc

6、安装docker-compose
sudo curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose