那些杂七杂八的记录(二)

   具体体现是,系统无论如何设置,终端变量始终为 LANG=CLANGUAGE=C, 检查了所有设置,最后发现在~/.profile中,设置了这两个变量,不知道为什么要这样干,删了重载下就可以了

  • 全局修改: 编辑 /usr/share/vim/vim82/defaults.vim , 大概在 80 行: if has('mouse') 下,将 set mouse=a 改为 set mouse= 即可
  • 多数是因为混合内容,在网站页面文件中,包含了其他网站非https的资源
1
2
3
4
5
6
7
# ~/.bashrc 
# need expand scripts: add https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh to profile.d
_PS1_CMD_="\${VIRTUAL_ENV_PROMPT}\\\\[\\\\][\\[\$(tput sgr0)\\]\\[\\033[38;5;5m\\]\\u\\[\$(tput sgr0)\\]@\\[\$(tput sgr0)\\]\\[\\033[38;5;70m\\]\\h\\[\$(tput sgr0)\\] \\W]\\[\$(tput sgr0)\\]\\[\\033[38;5;77m\\]\${__GIT_BRANCH__}\\[\\033[38;5;9m\\][\\\$?]\\[\$(tput sgr0)\\]\\\\\$ \\[\$(tput sgr0)\\]"

export PROMPT_COMMAND="${PROMPT_COMMAND}; __GIT_BRANCH__=\"\$(__git_ps1 '(%s)')\"; PS1=\"${_PS1_CMD_}\""

# export PS1="[\[$(tput sgr0)\]\[\033[38;5;5m\]\u\[$(tput sgr0)\]@\[$(tput sgr0)\]\[\033[38;5;70m\]\h\[$(tput sgr0)\] \W]\[$(tput sgr0)\]\[\033[38;5;9m\][\$?]\[$(tput sgr0)\]\\$ \[$(tput sgr0)\]"
  • 系统设置中, 默认代理设置使用的是 http 模式,如果想要使用 socks模式,则在地址栏输入 socks=<proxy_ip>,端口为socks端口即可(socks模式仅在win11上进行测试,其他系统参考执行)

本方案看到别人成功过,但自己没有测试成功
安装以下内容, 打开 sshfs-win-manager 正常配置挂载:

https://www.truenasscale.com/2022/05/24/1117.html
https://fairysen.com/742.html#toc-head-6

  1. 创建虚拟机, 操作系统设置,选择 不使用任何介质
  2. 系统 设置将 SCSI控制器 调整为 VirtIO SCSI, 机器可以设置为q35也可以默认
  3. 磁盘 设置删除掉所有的默认即可, 最后完成创建
  4. 完成创建后, 登陆到 PVE 主机上面,使用命令qm importdisk 100 aliyun_3_x64_20G_nocloud_alibase_20240528.qcow2 local-lvmqcow2 导入到虚拟机中,100为虚拟机的VM ID, local-lvm是要存储的位置, 没有 qm 命令,安装下 cloud-init 软件包
  5. 导入完成后, 在硬件里面可以看到一个 未使用的磁盘0, 然后双击编辑, 一般默认即可(总线/设备调整为SCSI)
  6. 选项 中,选择 引导顺序,将添加的那块磁盘设为第一启动项
  7. Cloud-init 中,设置下 用户名 / 密码
  8. 启动虚拟机

  以Alibaba Cloud Linux 3云镜像为例,下载aliyun_3_x64_20G_nocloud_alibase_20240528.vhdseed.img, seed.imgcloud-init 数据源,可以自己创建参考官方文档或者阿里云文档的生成示例。

  • 新建虚拟机, 虚拟机光盘无需指定,类型版本按照自己使用的云镜像指定,然后一直下一步, 虚拟硬盘选择不添加虚拟硬盘, 然后点击下一步, 直到完成创建。
  • 完成创建后, 右键创建好的虚拟机,选择设置, 理论上所有设置都可以使用默认值, 只需要更改一个地方。
    1. 选择 存储,选择控制器: IDE,右键添加cloud-init源, 就是下载的那个seed.img或者自己创建的(需要先注册到Virtualbox,这个步骤在测试时候发现不做似乎没什么影响,只是进去后使用的是下载镜像默认的帐号名密码,Alibaba Cloud Linux 3的是alinux:aliyun,这个在阿里云文档中手动生成配置文件中可以看到)。
    2. 选择 存储 , 选择 控制器: SATA, 在右侧设置中将型号改为virtio-scsi(这个步骤是必须的), 然后右键添加硬盘, 选择下载的aliyun_3_x64_20G_nocloud_alibase_20240528.vhd(同样需要先注册到Virtualbox)。
    3. 选择 网络连接方式根据自己情况调整,高级控制芯片修改为 准虚拟化网络(virtio-net), 然后确定修改。
    4. 最后正常启动虚拟机即可(注意: 第一次启动可能会比较慢,多等待一些时间就可以了, 启动后注意先配置好网络).
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// 当前测试版本为 8.2.2
// 修改Web界面源代码 /usr/share/pve-manager/js/pvemanagerlib.js(注意备份)
// 搜索到内容 `if (caps.nodes['Sys.Audit']) {`,大概在 43869 行, 注意搜索结果会有多个。
// 可以将前端界面修改为英文,然后随便改一个 gettext 内的内容刷新,看是否找对位置。
// 添加菜单,完整内容如下 
if (caps.nodes['Sys.Audit']) {
    me.items.push(
        {
            xtype: 'pveNodeSummary',
            title: gettext('Summary'),
            iconCls: 'fa fa-book',
            itemId: 'summary',
        },
        {
            xtype: 'pmxNotesView',
            title: gettext('Notes'),
            iconCls: 'fa fa-sticky-note-o',
            itemId: 'notes',
        },
        /// 添加内容开始
        {
            xtype: 'prometheusMonitorView',
            title: 'Prometheus 监控',
            iconCls: 'fa fa-line-chart',
            itemId: 'note-prometheus',
        }
        /// 添加内容结束
    );
}

/// 在文件最末尾添加 
Ext.define('PVE.node.PrometheusMonitor', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.prometheusMonitorView',

    scrollable: true,
    bodyPadding: 5,

    initComponent: function() {
        var me = this;

        var prometheusIframe = {
            xtype: 'component',
            autoEl: {
                tag: 'iframe',
                style: 'height: 100%; width: 100%; border: none;',
                src: 'https://sogou.com',
				frameborder: 0,
				scrolling: 'auto'
            }
        };

        Ext.apply(me, {
            layout: 'fit',
            items: [prometheusIframe]
        });

        me.callParent();
    }
});

https://github.com/zhuchao941/canal2sql

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 常用参数
## -sql_type: 只解析指定类型,支持 insert,update,delete,ddl。多个类型用逗号隔开,如--sql-type=insert,delete。可选。默认为insert,update,delete,ddl 
## -filter: 白名单,指定导出,多个逗号隔开 <库名>.<表名>(db.*、*.*)
## -mode: online/file/aliyun,默认online
## --file_url: 离线的binlog文件,支持http url访问
## -B: 显示回滚sql
## ...


# 1. 在线模式, 解析账户权限需要 SELECT, REPLICATION SLAVE, REPLICATION CLIENT 
$> java -jar canal2sql-1.1.3.jar -sql_type update,delete -filter <database>.<tables>  -mode file -file_url 'file:/tmp/mysql-bin.000016' -uroot -P3306 -pxxxxx -hlocalhost


# 2. 离线模式
## 导出数据库标结构
$> mysqldump -uroot -pxxxxx -hlocalhost --set-gtid-purged=OFF --default-character-set=utf8mb4 --single-transaction -R -E -B -d <database> > /tmp/database.sql
## 
$> java -jar ./canal2sql-1.1.3.jar -mode file -ddl '/tmp/database.sql' -file_url 'http://localhost:8080/binlog/mysql-bin.000474' 
  • 注意: 虚拟化的EC2 Windows实例只支持WSL 1

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/install-wsl-on-ec2-windows-instance.html

  • 使用绝对路径打开 "C:\Program Files\WSL\wsl.exe"
  • windows盘符默认挂载到/mnt目录下,且权限为777, 这不仅不方便,也有一些安全问题
    • 解决: 创建或者修改文件/etc/wsl.conf文件,添加以下内容
      1
      2
      3
      4
      5
      
      [automount]
      enabled = true
      root = /mnt/
      options = "metadata,dmask=022,fmask=133"
      mountFsTab = false
      
  • 如果这样创建文件仍然是777, 可以在/etc/profile中添加一些umask设定
    1
    2
    3
    
    if [[ "$(umask)" == '000' ]]; then
        umask 022
    fi
    
  • 重启 wsl --shutdown , 然后重启登陆, 不行就重启下系统

https://documentation.wazuh.com/current/user-manual/agent/agent-enrollment/deployment-variables/deployment-variables-linux.html