jetson nano tf卡备份与恢复

前提

  1. 一台安装了Ubuntu操作系统的机器(可以虚拟机)
  2. 一个TF卡读卡器

备份TF卡

  1. 将TF卡插在读卡器上,然后插到Ubuntu操作系统的机器上
  2. 查询TF卡的盘符
    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
    # 1. 查询,查询到的盘符是 /dev/sdb
    > sudo fdisk -u -l

    Disk /dev/sdb:59.5 GiB,63864569856 字节,124735488 个扇区
    单元:扇区 / 1 * 512 = 512 字节
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:gpt
    磁盘标识符:43CAB209-E630-440C-8D77-5A7C6BD76C49

    设备 起点 末尾 扇区 大小 类型
    /dev/sdb1 28672 124735454 124706783 59.5G Linux 文件系统
    /dev/sdb2 2048 2303 256 128K Linux 文件系统
    /dev/sdb3 4096 4991 896 448K Linux 文件系统
    /dev/sdb4 6144 7295 1152 576K Linux 文件系统
    /dev/sdb5 8192 8319 128 64K Linux 文件系统
    /dev/sdb6 10240 10623 384 192K Linux 文件系统
    /dev/sdb7 12288 13055 768 384K Linux 文件系统
    /dev/sdb8 14336 14463 128 64K Linux 文件系统
    /dev/sdb9 16384 17279 896 448K Linux 文件系统
    /dev/sdb10 18432 19327 896 448K Linux 文件系统
    /dev/sdb11 20480 22015 1536 768K Linux 文件系统
    /dev/sdb12 22528 22655 128 64K Linux 文件系统
    /dev/sdb13 24576 24735 160 80K Linux 文件系统
    /dev/sdb14 26624 26879 256 128K Linux 文件系统

    # 2. 备份,备份的时间比较旧,请耐心等候
    > sudo dd if=/dev/sdb | gzip > nano.backup.img.gz

恢复TF卡

前提要先格式化TF卡

  1. 使用ubuntu自带命令恢复
    1
    sudo gzip -dc nano.backup.img.gz | sudo dd of=/dev/sdb
  2. 使用balenaEtcher软件恢复(推荐)

    具体请看其官网: https://www.balena.io/etcher/

Python虚拟环境(Anaconda)

Anaconda

Anaconda官网 https://www.anaconda.com/products/individual

Anaconda加速

1
2
3
4
5
6
# 使用清华大学的源进行加速
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

虚拟环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建虚拟环境
conda create --name project-name-01 python=3.8

# 激活环境
conda activate project-name-01

# 查看python版本
python3 -V

# 退出当前环境
conda deactivate

# 删除虚拟环境
conda remove --name project-name-01 --all

MySQL 主从

mysql主从同步

  • 主数据库mysql配置

    1
    2
    3
    4
    5
    6
    7
    8
    # 日志文件名
    log-bin = mysql-bin

    # 主数据库端ID号
    server-id = 1

    # 日志格式,建议mixed
    binlog-format = mixed
  • 创建同步账号

    1
    2
    3
    4
    5
    6
    7
    -- 创建slave帐号slave_account,密码123456
    grant replication slave on *.* to 'slave_account'@'192.168.1.%' identified by '123456';
    -- 更新数据库权限
    flush privileges;

    -- 查询master的状态
    show master status;
  • 从数据库mysql配置

    1
    2
    3
    4
    5
    # 日志文件名
    log-bin = mysql-bin

    # 从数据库端ID号
    server-id =2
  • 导入数据到从库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    -- 在主库中导出数据
    -- 锁表
    flush tables with read lock;
    -- 导出数据
    mysqldump --all-databases -h192.168.1.27 -uroot -p > full.sql

    -- 查看master状态和记录需要同步的位置(执行同步是需要参考的数据)
    show master status;
    -- 不锁表
    UNLOCK TABLES;
  • 执行同步命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    -- 在从库中导入数据
    source full.sql

    -- 执行同步命令,设置主数据库ip,同步帐号密码,同步位置(参考`show master status`的结果进行填入)
    change master to master_host='192.168.1.27',master_user='slave_account',master_password='123456',master_log_file='mysql-bin.000023',master_log_pos=68034;

    -- 开启同步功能
    start slave;

    -- 检查从数据库状态
    show slave status\G;

    -- 设普通用户为只读权限
    set global read_only=1;
  • 其它命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -- 停止主从同步(slave端)
    stop slave;

    -- 连接断开时,重新连接超时时间(slave端)
    change master to master_connect_retry=50;

    -- 开启主从同步(slave端)
    start slave;

    -- 取消普通用户只读权限(slave端)
    set global read_only=0;

MySQL Binlog

binlog介绍

  1. binlog,即二进制日志,它记录了数据库上的所有改变.
  2. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕.
  3. binlog格式
    • 基于语句,无法保证所有语句都在从库执行成功,比如update … limit 1;
    • 基于行,将每一次改动记为binlog中的一行.在执行一个特别复杂的update或者delete操作时,基于行的格式会有优势.

登录到mysql查看binlog

只查看第一个binlog文件的内容

1
show binlog events;

查看指定binlog文件的内容

1
show binlog events in 'mysql-bin.000002';

查看当前正在写入的binlog文件

1
show master status;

获取binlog文件列表

1
show binary logs;

用mysqlbinlog工具查看

注意:

  1. 不要查看当前正在写入的binlog文件
  2. 不要加–force参数强制访问
  3. 如果binlog格式是行模式的,请加 -vv参数

本地查看

基于开始/结束时间

1
mysqlbinlog --start-datetime='2013-09-10 00:00:00' --stop-datetime='2013-09-10 01:01:01' -d 库名
1
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001
1
mysqlbinlog -v -d orderdb /usr/local/mysql/data/mysql-bin.000001

基于pos值

1
mysqlbinlog --start-postion=107 --stop-position=1000 -d 库名 二进制文件

远程查看

指定开始/结束时间,并把结果重定向到本地t.binlog文件中.

1
2
mysqlbinlog -u username -p password -hl-db1.dba.beta.cn6.qunar.com -P3306 \
--read-from-remote-server --start-datetime='2013-09-10 23:00:00' --stop-datetime='2013-09-10 23:30:00' mysql-bin.000001 > t.binlog