Ubuntu 传输文件方法

Ubuntu 传输文件方法

文章目录

  • Ubuntu 传输文件方法
    • 1 scp
      • usage
      • 跨越跳板机传输
    • 2 rsync(remote sync)
      • 特性
      • install
      • usage
        • 本地拷贝同步
        • 将文件从远程机器复制到本地机器
        • 将文件从本地机器复制到远程机器
        • 通过ssh使用rsync
    • 3 SSHFS
      • usage
      • 通过 SSHFS 从远程系统访问文件
      • 永久挂载远程文件系统
    • 4 使用基于 GUI 的 SFTP 客户端在远程系统之间传输文件
    • 5 msrsync(multi-stream rsync)
      • 安装
      • 用法:
      • Example
    • 测试
      • 测试数据
      • scp 和 rsync 远程传输与本地传输
      • rsync 和 msrsync 本地传输
      • 结果对比
    • Reference
      • >>>>> 欢迎关注公众号【三戒纪元】 <<<<<

1 scp

secure copy,使用 ssh登陆服务器,可进行远程拷贝文件操作。因为是加密传输,会影响一些速度

cp 也能拷贝文件,但是不能跨服务器。

参数说明:

参数选项说明
-1强制scp命令使用协议ssh1
-2强制scp命令使用协议ssh2
-4强制scp命令只使用IPv4寻址
-6强制scp命令只使用IPv6寻址
-B使用批处理模式(传输过程中不询问传输口令或短语)
-C允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p保留原文件的修改时间,访问时间和访问权限。
-q不显示传输进度条。
-r递归复制整个目录。
-v详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option如果习惯于使用ssh_config(5)中的参数传递方式,
-P port注意是大写的P, port是指定数据传输用到的端口号
-S program指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

usage

# 拷贝文件
## 本地拷贝到远程服务器
scp local_file remote_username@remote_ip:remote_folderscp local_file remote_username@remote_ip:remote_filescp local_file remote_ip:remote_folderscp local_file remote_ip:remote_file## 服务器拷贝到本地
scp remote_username@remote_ip:remote_folder/remote_file local_file ----------------------------------# 拷贝文件夹
## 本地拷贝到远程服务器
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder## 服务器拷贝到本地
scp -r remote_username@remote_ip:remote_folder local_folder

跨越跳板机传输

文件传输
上传
scp -P 22 -o "ProxyJump yqnj@10.78.3.199" -r /home/songweijie/faw/project_code/HAD_J5_3_APP_Framework-5/output.tar.gz root@172.20.0.55:/home/lidar/swj/output.tar.gz
简化
scp -o 'ProxyJump yqnj@10.78.3.199' -r /home/songweijie/faw/project_code/HAD_J5_3_APP_Framework-5/output.tar.gz root@172.20.0.55:/home/lidar/swj/output.tar.gz
scp -o 'ProxyJump yqnj@10.78.3.199' -r /home/qiancj/codes/faw-lidar/deploy/app_meta_lidar_perception.tar.gz root@172.20.0.53:/opt/data/driving_map_data/lidar/app_meta_lidar_perception.tar.gz下载
scp -P 22 -o 'ProxyJump yqnj@10.78.3.199 -p 22' -r root@172.20.0.55:/home/lidar/FRidar.pcap /home/songweijie/faw/Lidar/data/FRidar.pcap
简化
scp -o 'ProxyJump yqnj@10.78.3.199' -r root@172.20.0.55:/home/lidar/FRidar.pcap /home/songweijie/faw/Lidar/data/FRidar.pcap

2 rsync(remote sync)

可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。

也可以当作文件复制工具,替代cpmv命令。

特性

  1. 高效地复制同步数据到对端,或者对端到本地
  2. 支持复制链接、设备、属主、属组、权限
  3. 比scp(Secure Copy)更快。rsync使用远程更新协议( remote-update protocol ),会检查发送方和接收方已有的文件,这允许仅仅传输两组文件之间的差异(默认规则是文件大小或修改时间有变动)。对于首次传输,它将文件或目录的全部内容从源复制到目标,但是从下次起,它仅将变化部分复制到目标。
  4. Rsync消耗较少的带宽,因为它使用压缩和解压缩方法,同时发送和接收数据两端。HTTP压缩技术

install

$ sudo apt-get install rsync   [On Debian/Ubuntu & Mint] 
$ pacman -S rsync              [On Arch Linux]
$ emerge sys-apps/rsync        [On Gentoo]
$ sudo yum install rsync       [On Fedora/CentOS/RHEL and Rocky Linux/AlmaLinux]
$ sudo zypper install rsync    [On openSUSE]

usage

参数说明
-v详细模式输出
-r递归拷贝数据,但是传输数据时不保留时间戳和权限
-a归档模式, 归档模式总是递归拷贝,而且保留符号链接、权限、属主、属组时间戳
-z压缩传输
-hhuman-readable
–progress显示传输过程
–exclude=PATTERN指定排除传输的文件模式
–include=PATTERN指定需要传输的文件模式
–delete同步时,删除那些DST中有,而SRC没有的文件
–max-size限定传输文件大小的上限
–dry-run显示那些文件将被传输,并不会实际传输
–bwlimit限制传输带宽
-W拷贝文件,不进行增量检测
–numeric-ids不按用户/组名称映射 uid/gid 值

本地拷贝同步

rsync -zvh local_file local/directory
rsync -avzh local/directory1 local/directory2

将文件从远程机器复制到本地机器

假设要将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。

rsync -avzh remote_user@remote_ip:remote_directory local/directoryrsync username@ip_address:/home/username/filename .
rsync -avzh root@192.168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms

将文件从本地机器复制到远程机器

这是一个通用语法,它将文件复制到远程系统上用户名的主目录。

rsync -avzh local/directory remote_user@remote_ip:remote_directory 
rsync -r source_dir username@ip_address:/home/username/target_dirrsync filename username@ip_address:/home/username
rsync -avz rpmpkgs/ root@192.168.0.101:/home/

通过ssh使用rsync

SSH(Secure Shell)使用 rsync,我们可以使用 SSH(安全外壳)进行数据传输,在传输数据时使用 SSH 协议,可以确保数据在加密的安全连接中传输,以便没有人可以在通过互联网上的线路传输数据时读取数据。

rsync -avzhe ssh local_file remote_user@remote_ip:remote/directoryrsync -avzhe ssh backup.tar root@192.168.0.100:/backups/rsync -avzhe ssh remote_user@remote_ip:remote/directory local_file# 传输数据时显示传输过程  使用--progress参数
rsync -avzhe ssh --progress local_file remote_user@remote_ip:remote/directory
  • 传输R开头的文件、目录,排除其他情况的文件、目录
  rsync -avze ssh --include 'R*' --exclude '*' remote_user@remote_ip:remote/directory local/directoryrsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.101:/var/lib/rpm/ /root/rpm

3 SSHFS

SSHFS(Secure SHell FileSystem)是一个客户端,可以让我们通过 SSH 文件传输协议(SFTP)挂载远程的文件系统并且在本地机器上和远程的目录和文件进行交互。

SFTP 是一种通过 SSH 协议提供文件访问、文件传输和文件管理功能的安全文件传输协议。因为 SSH 在网络中从一台电脑到另一台电脑传输文件的时候使用数据加密通道,并且 SSHFS 内置在 FUSE(用户空间的文件系统)内核模块,允许任何非特权用户在不修改内核代码的情况下创建他们自己的文件系统。

usage

用法: sshfs [user@]host:[dir] 挂载点 [选项]常规选项:-o opt,[opt...] 挂载选项-h --help 打印帮助-V --version 打印版本SSHFS 选项:-p PORT 相当于“-o port=PORT”-C 相当于“-o 压缩=yes”-F ssh_configfile 指定备用ssh配置文件-1 相当于 '-o ssh_protocol=1'-o reconnect 重新连接到服务器-o delay_connect 延迟与服务器的连接-o sshfs_sync 同步写入-o no_readahead 同步读取(无推测性预读)-osync_readdir 同步readdir-o sshfs_debug 打印一些调试信息-o cache=BOOL 启用缓存 {yes,no} (默认值:yes)-o cache_max_size=N 设置缓存的最大大小(默认值:10000)-o cache_timeout=N 设置缓存超时(以秒为单位)(默认值:20)-o cache_X_timeout=N 设置 {stat,dir,link} 缓存的超时-o 缓存清理间隔=N设置自动清洁的时间间隔缓存(默认:60)-ocache_min_clean_interval=N设置强制清洁的时间间隔缓存已满(默认值:5)-o workaround=LIST 冒号分隔的解决方法列表无 未启用解决方法[no]rename 修复重命名现有文件(默认值:关闭)[no]truncate 修复旧服务器的截断(默认:关闭)[no]buflimit 修复服务器中的缓冲区填充错误(默认:打开)[no]fstat 修复旧服务器的 fstat(默认值:关闭)-o idmap=TYPE 用户/组 ID 映射(默认值:无)none 不翻译 ID 空间用户仅翻译连接用户的 UID/GID文件转换 uidfile/gidfile 中包含的 UID/GID-o uidfile=FILE 包含用户名的文件:remote_uid 映射-o gidfile=FILE 包含组名的文件:remote_gid 映射-o nomap=TYPE 和 idmap=file,如何处理丢失的映射忽略不做任何重新映射错误返回错误(默认)-o ssh_command=CMD 执行 CMD 而不是 'ssh'-o ssh_protocol=N 要使用的 ssh 协议(默认值:2)-o sftp_server=sftp 服务器或子系统的 SERV 路径(默认值:sftp)-o directport=PORT 绕过ssh直接连接到PORT-o 从机通过 stdin 和 stdout 绕过网络进行通信-o disable_hardlink link(2) 将返回并将 errno 设置为 ENOSYS-o transform_symlinks 将绝对符号链接转换为相对符号链接-o follow_symlinks 跟随服务器上的符号链接-o no_check_root 不检查服务器上是否存在“dir”-o password_stdin 从 stdin 读取密码(仅适用于 pam_mount!)-o SSHOPT=VAL ssh 选项(参见 man ssh_config)保险丝选项:-d -o debug 启用调试输出(隐含 -f)-f 前台操作-s 禁用多线程操作-o allow_other 允许其他用户访问-o allow_root 允许访问root-o auto_unmount 进程终止时自动卸载-o 非空允许安装在非空文件/目录上-o default_permissions 启用内核的权限检查-o fsname=NAME 设置文件系统名称-o subtype=NAME 设置文件系统类型-o large_read 发出大量读取请求(仅限 2.4-o max_read=N 设置读取请求的最大大小-o hard_remove 立即删除(不隐藏文件)-o use_ino 让文件系统设置 inode 编号-o readdir_ino 尝试在readdir中填写d_ino-o direct_io 使用直接 I/O-o kernel_cache 内核中的缓存文件-o [no]auto_cache 根据修改时间启用缓存(关闭)-o umask=M 设置文件权限(八进制)-o uid=N 设置文件所有者-o gid=N 设置文件组-o Entry_timeout=T 名称缓存超时(1.0 秒)-o negative_timeout=T 已删除名称的缓存超时(0.0s)-o attr_timeout=T 属性缓存超时(1.0s)-o ac_attr_timeout=T 属性自动缓存超时 (attr_timeout)-o noforget 永远不会忘记缓存的 inode-o Remember=T 记住缓存的 inode T 秒(0s)-o nopath 如果不需要,不提供路径-o intr 允许请求被中断-o intr_signal=中断时发送的 NUM 信号 (10)-o module=M1[:M2...] 要推送的模块名称

通过 SSHFS 从远程系统访问文件

在 Debian 和 Ubuntu 上,您可以使用以下命令:

sudo apt install sshfs

在系统上安装 sshfs 后,您可以使用它来挂载远程目录,最好为挂载点创建一个专用目录。

mkdir mount_dir

在远程机器上挂载所需的目录:

sshfs remote_username@remote_IP_address:remote_path_to_dir local_mount_dir# 允许其他用户使用
sudo sshfs -o allow_other remote_username@remote_IP_address:remote_path_to_dir local_mount_dir# 如果端口不是默认的22,则需要指定端口
-p 33000
sudo sshfs -o allow_other -p 33000 remote_username@remote_IP_address:path_to_dir local_mount_dirsudo sshfs -o allow_other test@10.78.33.100:/home/test/qian /mnt/A100_qian
test@10.78.33.100's password: 
(base) qiancj@qiancj-HP-ZBook-G8:/mnt$ ll
total 20
drwxr-xr-x  5 root root 4096 625 10:41 ./
drwxr-xr-x 22 root root 4096 426 14:10 ../
drwxrwxr-x  1 1001 1001 4096 67 10:18 A100_qian/ # 拥有者有问题
(base) qiancj@qiancj-HP-ZBook-G8:/mnt$ cd A100_qian/
(base) qiancj@qiancj-HP-ZBook-G8:/mnt/A100_qian$ ls
20230607_010452.log  20230607_012200.log # 远程文件夹内文件

如果 Linux 服务器配置为基于 SSH 密钥授权,那么需要指定公共密钥的路径:

sshfs -o IdentityFile=~/.ssh/id_rsa remote_username@remote_IP_address:remote_path_to_dir local_mount_dir
sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa remote_username@remote_IP_address:path_to_dir local_mount_dir

挂载后,使用df -hT检查挂载点

df -hT

永久挂载远程文件系统

修改 /etc/fstab 的文件:

sudo vi /etc/fstab 

在文件最下面添加如下命令:

sshfs#remote_username@remote_IP_address:remote_path_to_dir local_mount_dir fuse.sshfs defaults 0 0

可以将文件复制到该目录或从该目录复制,就好像它在本地计算机上一样

cp local_file mount_dir

请记住,您已安装此文件,完成工作后,您还应该卸载它:

umount mount_dir

4 使用基于 GUI 的 SFTP 客户端在远程系统之间传输文件

作为最后的手段,您可以使用 FTP 客户端在远程和本地系统之间传输文件。

FileZilla是最流行的跨平台 FTP 客户端之一。可以轻松地安装在本地系统上。

安装后,转到文件->站点管理器并添加远程系统详细信息,例如 IP 地址、SSH 端口号、用户名和密码。

连接后,可以看到一个拆分窗口视图,左侧显示本地文件系统,右侧显示远程文件系统。

5 msrsync(multi-stream rsync)

从名字也能看出来,基于rsync做了个多路传输

在扫描源时,它将把传输分成多个存储桶,并有望通过并行运行可配置数量的 rsync 进程来帮助最大限度地利用可用带宽。 主要限制是它不处理远程源或目标目录,它们必须是本地可访问的(本地磁盘、nfs/cifs/其他挂载点)。

安装

msrsync 是一个单独的 python 文件,只需下载它即可。 或者,如果愿意,可以克隆存储库并使用提供的 Makefile:

$ wget https://raw.githubusercontent.com/jbd/msrsync/master/msrsync && chmod +x msrsync
# or
$ git clone https://github.com/jbd/msrsync && cd msrsync && sudo make install

用法:

$ msrsync --help
usage: msrsync [options] [--rsync "rsync-options-string"] SRCDIR [SRCDIR2...] DESTDIRor: msrsync --selftestmsrsync选项:-p, --processes ...要使用的 rsync 进程数 [1]-f, --files ... 将存储桶限制为 <files> 文件数 [1000]-s, --size ... 将分区限制为 BYTES 大小(1024 个后缀:K、M、G、T、P、E、Z、Y)[1G]-b, --buckets ... 存放存储桶文件的位置(默认值:自动临时目录)-k, --keep 最后不删除存储桶目录-j, --show 显示存储桶目录-P, --progress 显示进度--stats 显示额外的统计数据-d, --dry-run 不运行 rsync 进程-v, --version 打印版本rsync选项:-r, --rsync ... 必须是最后一个选项。 rsync 选项作为带引号的字符串 ["-aS --numeric-ids"]。 “--from0 --files-from=... --quiet --verbose --stats --log-file=...”选项无论如何都会被添加。 请注意,如果您想使用它们,这将影响所有 rsync *from/filter 文件。 请参阅 rsync(1) 联机帮助页细节。自检选项:-t, --selftest 运行集成单元和功能测试-e, --bench 运行基准测试-g, --benchshm 在 /dev/shm 或 $SHM 环境变量中的目录中运行基准测试

Example

$ msrsync -p4 --rsync "-a --numeric-ids --inplace" source destination$ msrsync -p 8 /usr/share/doc/ /tmp/doc/
$ msrsync -P -p 8 /usr/share/doc/ /tmp/doc/
[33491/33491 entries] [602.1 M/602.1 M transferred] [3378 entries/s] [60.7 M/s bw] [monq 1] [jq 1]$ msrsync -P -p 8 --stats /usr/share/doc/ /tmp/doc/
[33491/33491 entries] [602.1 M/602.1 M transferred] [3533 entries/s] [63.5 M/s bw] [monq 1] [jq 1]
Status: SUCCESS
Working directory: /home/jbdenis/Code/msrsync
Command line: ./msrsync -P -p 8 --stats /usr/share/doc/ /tmp/doc/
Total size: 602.1 M
Total entries: 33491
Buckets number: 34
Mean entries per bucket: 985
Mean size per bucket: 17.7 M
Entries per second: 3533
Speed: 63.5 M/s
Rsync workers: 8
Total rsync's processes (34) cumulative runtime: 73.0s
Crawl time: 0.4s (4.3% of total runtime)
Total time: 9.5s

测试

测试数据

test_src 文件夹下包含1个1.5G大文件,和4260个小文件

(base) qiancj@qiancj-HP-ZBook-G8:~$ du -s --apparent-size --bytes test_src
3007084438	test_src
(base) qiancj@qiancj-HP-ZBook-G8:~$ du -s --apparent-size --human test_src
2.9G	test_src
(base) qiancj@qiancj-HP-ZBook-G8:~$ find test_src -type f | wc -l
4261
(base) qiancj@qiancj-HP-ZBook-G8:~$ find test_src -type d | wc -l
1

scp 和 rsync 远程传输与本地传输

$ time scp -r test_src test@10.78.4.100:/home/test/qian/
real	0m38.079s
user	0m6.412s
sys	0m2.203s$ time rsync -avzh test_src test@10.78.4.100:/home/test/qian/sent 1.28G bytes  received 80.98K bytes  11.01M bytes/sec
total size is 3.01G  speedup is 2.34real	1m56.117s
user	1m53.235s
sys	0m1.581s$ time rsync -a --numeric-ids  test_src test@10.78.4.100:/home/test/qian/
test@10.78.4.100's password: real	0m35.946s
user	0m9.702s
sys	0m2.027s# 本地传输
$ time scp -r test_src test2/real	0m1.201s
user	0m0.003s
sys	0m1.192s$ time rsync -avzh test_src test2/
sent 1.28G bytes  received 80.98K bytes  9.83M bytes/sec
total size is 3.01G  speedup is 2.34real	2m10.117s
user	2m23.374s
sys	0m2.479s$ time rsync -a --numeric-ids test_src test2/real	0m5.073s
user	0m7.438s
sys	0m1.919s

rsync 和 msrsync 本地传输

$ time rsync -a --numeric-ids test_src test2/real	0m5.073s
user	0m7.438s
sys	0m1.919s(base) qiancj@qiancj-HP-ZBook-G8:~$ time msrsync -p 1 test_src test2/real	0m7.306s
user	0m7.613s
sys	0m4.116s
(base) qiancj@qiancj-HP-ZBook-G8:~$ rm -rf test2/test_src/
(base) qiancj@qiancj-HP-ZBook-G8:~$ time msrsync -p 2 test_src test2/real	0m5.398s
user	0m7.520s
sys	0m4.544s
(base) qiancj@qiancj-HP-ZBook-G8:~$ rm -rf test2/test_src/
(base) qiancj@qiancj-HP-ZBook-G8:~$ time msrsync -p 3 test_src test2/real	0m5.315s
user	0m7.798s
sys	0m4.424s
(base) qiancj@qiancj-HP-ZBook-G8:~$ rm -rf test2/test_src/
(base) qiancj@qiancj-HP-ZBook-G8:~$ time msrsync -p 4 test_src test2/real	0m4.480s
user	0m7.716s
sys	0m4.943s
(base) qiancj@qiancj-HP-ZBook-G8:~$ rm -rf test2/test_src/
(base) qiancj@qiancj-HP-ZBook-G8:~$ time msrsync -p 5 test_src test2/real	0m4.550s
user	0m7.941s
sys	0m4.954s

结果对比

  1. 远程传输
CommandTimeEntries per secondBandwidth (MBytes/s)Speedup
scp0m38.079s11275.31x1
rsync -avzh1m56.117s3724.69x0.32
rsync -a --numeric-ids0m35.946s11979.78x1.05
  1. 本地传输
CommandTimeEntries per secondBandwidth (MBytes/s)Speedup
scp0m1.201s3547.882388.01x1
rsync -avzh2m10.117s32.7522.04x0.01
rsync -a --numeric-ids0m5.073s839.94565.35x0.24
msrsync -p 10m7.306s583.22392.55x0.16
msrsync -p 20m5.398s789.37531.31x0.22
msrsync -p 40m5.315s801.69539.60x0.23
msrsync -p 80m4.480s951.12640.18x0.27
msrsync -p 160m4.550s936.48630.33x0.26

这里测试数据不平衡,msrsync 多个进程开始,最后瓶颈在于传输1.5G的单文件了,而测试文件小文件也不足够多。

Reference

  • 通过 SSH 在远程和本地系统之间传输文件的 4 种方法
  • Linux scp命令
  • Linux之cp/scp命令+scp命令详解
  • Linux命令——rsync
  • 10 Practical Examples of Rsync Command in Linux
  • Linux之远程挂载SSHFS
  • SSHFS: How to Mount Remote File Systems Over SSH
  • rsync 用法教程

>>>>> 欢迎关注公众号【三戒纪元】 <<<<<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深挖 Threads App 帖子布局,我进一步加深了对CSS网格布局的理解

当我遇到一个新产品时&#xff0c;我首先想到的是他们如何实现CSS。当我遇到Meta的Threads时也不例外。我很快就探索了移动应用程序&#xff0c;并注意到我可以在网页上预览公共帖子。 这为我提供了一个深入挖掘的机会。我发现了一些有趣的发现&#xff0c;我将在本文中讨论。 …

使用node.js 搭建一个简单的HelloWorld Web项目

文档结构 config.ini #将本文件放置于natapp同级目录 程序将读取 [default] 段 #在命令行参数模式如 natapp -authtokenxxx 等相同参数将会覆盖掉此配置 #命令行参数 -config 可以指定任意config.ini文件 [default] authtokencc83c08d73357802 #对应一条隧…

LeetCode 周赛上分之旅 # 37 多源 BFS 与连通性问题

⭐️ 本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架&#xff0c;你的思考越抽象&#xff0c;它能覆盖的问题域就越广&#xff0c;理解难度…

python高阶技巧

目录 设计模式 单例模式 具体用法 工厂模式 优点 闭包 案例 修改闭包外部变量 闭包优缺点 装饰器 装饰器原理 装饰器写法 递归 递归的调用过程 递归的优缺点 用递归计算阶乘 设计模式 含义&#xff1a;设计模式是一种编程套路&#xff0c;通过这种编程套路可…

AQL品质抽样标准

AQL抽样标准 - 百度文库 Acceptance Quality Limit 接收质量限的缩写&#xff0c;即当一个连续系列批被提交验收时&#xff0c;可允许的最差过程平均质量水平。 AQL普遍应用于各行业产品的质量检验&#xff0c;不同的AQL标准应用于不同物质的检验上。在AQL 抽样时&#xff0c;…

【开源三方库】Aki:一行代码极简体验JSC++跨语言交互

开源项目 OpenHarmony 是每个人的 OpenHarmony 一、简介 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;的前端开发语言是ArkTS&#xff0c;在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#x…

SpringBoot开发环境热部署

目录 开发热部署 添加dev-tools依赖 在application.properties中配置devtools 在IDEA中添加设置 开发热部署 在实际的项目开发调试过程中会频繁地修改后台类文件&#xff0c;导致需要重新编译、 重新启动&#xff0c;整个过程非常麻烦&#xff0c;影响开发…

STM32 低功耗-待机模式

STM32 待机模式 文章目录 STM32 待机模式第1章 低功耗模式简介第2章 待机模式简介2.1 进入待机模式2.1 退出待机模式 第3章 待机模式代码部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中&#xff0c;具有四种工作模式&#xff1a;运行、睡眠、停止和待机模式。 在系统或…

【Spring Cloud 六】Hystrix熔断

这里写目录标题 系列文章目录背景一、Hystrix是什么服务雪崩服务容错的相关概念熔断器降级超时控制限流 二、会什么要有Hystrix三、如何使用Hystrix进行熔断处理整体项目代码服务提供者pom文件yml配置文件启动类controller 服务消费者pom文件yml配置文件启动类feignhystrixcont…

信息安全技术工业控制系统安全控制应用指南学习笔记

工业控制系统安全控制基线 根据工业控制系统在国家安全、经济建设、社会生活中的重要程度&#xff0c;遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等&#xff0c;结合信息安全等级保护标准划分及实施效果分析&#xff0c;结合工业…

前端主题切换方案——CSS变量

前言 主题切换是前端开发中老生常谈的问题&#xff0c;本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时&#xff0c;为了避免代码冗余&#xff0c;降低维护成本&#xff0c;一些CSS预编译工具&#xff08;Sass/Less/Stylus&#xff09;等都支…

JVM面试题

JVM理论 #JVM内存模型# Java内存模型&#xff08;JMM&#xff09;&#xff1f; Java的内存模型决定了线程间的通信方式&#xff0c;JMM的模型是由主存和工作内存构成&#xff0c;两个线程想要正常通信需要将工作内存中的变量刷到主存中&#xff0c;另一个线程才能正确读取得…

【数据结构】移除链表元素-图文解析(单链表OJ题)

LeetCode链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 本文导航 &#x1f4ad;做题思路 &#x1f3a8;画图更好理解&#xff1a; ✍️代码实现 &#x1f5c2;️分情况讨论&#xff1a; ❄️极端情况&#xff1a; &#x1f4ad;做题思路 遍历链表…

Git报错合集

本文记录了笔者在使用 github 过程中遇到的问题&#xff0c;仅供个人使用。 目录 Could not resolve hostlocal changes to the following files would be overwritten by mergeTLS connection was non-properly terminatedUpdates were rejected because the remote contains …

普及100Hz高刷+1ms响应 微星发布27寸显示器:仅售799元

不论办公还是游戏&#xff0c;高刷及低响应时间都很重要&#xff0c;微星现在推出了一款27寸显示器PRO MP273A&#xff0c; 售价只有799元&#xff0c;但支持100Hz高刷、1ms响应时间&#xff0c;还有FreeSync技术减少撕裂。 PRO MP273A的100Hz高刷新率是其最大的卖点之一&#…

scala连接mysql数据库

scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。 加载依赖 其中包含 JDBC driver <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29&l…

eclipse Java Code_Style Code_Templates

Preferences - Java - Code Style - Code Templates Eclipse [Java_Code_Style_Code_Templates_ZengWenFeng] 2023.08.07.xml 创建一个新的工程&#xff0c;不然有时候不生效&#xff0c;旧项目可能要重新导入eclipse 创建一个测试类试一试 所有的设置都生效了

Java8实战-总结11

Java8实战-总结11 Lambda表达式方法引用管中窥豹如何构建方法引用 构造函数引用 Lambda表达式 方法引用 方法引用让你可以重复使用现有的方法定义&#xff0c;并像Lambda一样传递它们。在一些情况下&#xff0c;比起使用Lambda表达式&#xff0c;它们似乎更易读&#xff0c;感…

算法竞赛入门【码蹄集新手村600题】(MT1120-1140)C语言

算法竞赛入门【码蹄集新手村600题】(MT1120-1140&#xff09;C语言 目录MT1121 小码哥考完咯MT1122阶梯IF-ELSEMT1123 元音MT1124 罗马数字MT1125 几月份MT1126 十二生肖MT1127 小码哥的属相MT1128 骰子的反面MT1129 小码哥玩骰子MT1130 骰子里面的数学MT1131 字符判断MT1132 人…

SciencePub学术 | 算法类重点SCIEEI征稿中

SciencePub学术 (www.sciencepub.cn) 刊源推荐: 算法类重点SCIE&EI征稿中&#xff01;2区闭源好刊&#xff0c;对国人非常友好。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 算法类重点SCIE&EI 【期刊简介】IF&#xff1a;6.0-6.5&#xff0…