2020年10月10日星期六

VirtualHere(usbys) 运行命令及 config.ini配置详解

vhui64客户端:下载页面
运行管理命令:
刷新配置:systemctl daemon-reload
启动服务: sudo systemctl start virtualhere.service
停止服务: sudo systemctl stop virtualhere.service
重启服务: sudo systemctl restart virtualhere.service
开机自启: sudo systemctl enable virtualhere.service
禁用自启: sudo systemctl disable virtualhere.service
服务运行脚本示例:
[Unit]
Description=VirtualHere Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/app/VirtualHere/vhusbd -b -i prefer ipv6 -c /usr/local/app/VirtualHere/config.ini

[Install]
WantedBy=multi-user.target

config.ini示例:
It=1722049634
License=0200000a2001,999,MCACDkn0jww6R5WOIjFqU/apAg4Um+mDkU2TBcC7fA1FrA==
AutoAttachToKernel=1  #(是否允许设备在远程用户不使用设备时可供主机使用)
TCPPort=57860
IgnoredDevices=0x7825[/0xA2A4]  #(忽略设备, VendorID 和 DeviceID) 
ServerName=USB Hub JYHZ

关于config.ini配置文件

所有 VirtualHere USB 服务器设置都存储在一个名为config.ini 的文本文件中,通常与 vhusbd 二进制文件位于同一目录中。
当作为守护程序或服务运行时,config.ini文件可能在 Linux 的 /root 或 Windows 的 c:windowssystem32 中。
当服务器最初启动时,或在没有 config.ini 文件的情况下启动时,它将使用合理的默认值,任何非默认值都将写入新的 config.ini。

关于config.ini配置的参数

所述的config.ini文件具有以下参数(它们不区分大小写),所述参数被输入到一个所述的 config.ininame=value 格式,每行一个。

以下是可选的参数:

ServerName 出现在客户端中的服务器名称,例如“Virtual USB Hub”。如果将此值设置为特殊字符串 HOSTNAME’ tabindex=”0” id=”MathJax-Element-1-Frame” >HOSTNAME ,它将采用服务器的主机名值。

License 服务器的许可证代码。注册服务器时,VirtualHere 通过电子邮件发送此值。

DeviceNicknames 这是格式,例如,如果设备插入相同的端口,地址总是相同的。您应该使用 VirtualHere 客户端通过右键单击设备并选择“重命名…”来设置昵称,而不是直接编辑此值,因为在连接客户端之前无法访问该地址。

UseAVAHI 1表示使用Bonjour在网络上广播此服务器的存在,0表示不使用广播消息在网络上宣传此服务器。默认为1开启。关闭此设置对于防火墙后面的客户端很有用,因为防火墙或子网会阻止 IP 广播数据包,他们宁愿直接在客户端中输入 IP 地址。

Hostname 这指定了与客户端通信时服务器的主机名。默认情况下,它是调用主机上的主机名实用程序的结果,但可以通过在此处指定一个值来覆盖。例如。USB服务器。请注意,如果网络上有多个 virtualhere 服务器,它们必须具有唯一的主机名

CompressionLimit 一旦 USB 传输大于此处指定的字节数,它将被压缩以节省网络传输时间。较小的值将使用更多的 CPU 来略微提高网络吞吐量,较大的值将使用较少的 CPU,但网络吞吐量会受到影响。从反复试验来看384似乎是正确的。

IgnoredDevices 这指定了插入服务器时要忽略的设备。此设置的格式 xxxx[/yyyy],xxxx/yyyy,... ,其中XXXX是设备的USB厂商ID和YYYY是设备的USB产品ID(可选)(没有前导零和值均为十六进制)。例如,在 Raspberry PI 上运行的 VirtualHere 会自动填充它,424/ec00因为这是内置于电路板中的基于 Raspberry Pi USB 的内部以太网适配器,不应共享。要找出特定设备的供应商/产品 ID,请将其插入并从 VirtualHere 客户端查看设备属性。您还可以为产品 ID 指定通配符,例如 424/*

IgnoredBuses (仅限 Linux)这指定要忽略的特定 USB 端口。它的格式hostcontroller-hub.port,hostcontroller-hub.port,…例如忽略连接到 Raspberry pi 上的端口 2 的设备,将此值设置为1-1.2

AllowedDevices 除此处列出的设备外,所有设备都将被忽略。它与IgnoredDevices设置相反。格式与IgnoredDevices设置相同,即 xxxx[/yyyy][,xxxx/yyyy,]... (无前导零)。如果此值为空,则将允许所有设备(同时考虑上面的IgnoredBuses和IgnoreDevices设置)您还可以为产品 ID 指定通配符,例如 424/*

AutoAttachToKernel 将此设置1为允许设备在远程用户不使用设备时可供主机使用。默认适用1于 NAS、Android 和 Debian(64/32 位)以及0所有其他平台

ClaimPorts (仅限 Linux)默认情况下这是0(关闭)。当设置为1virtualhere 服务器时,将阻止服务器内核与设备交互。将此值设置为 1 可使服务器与对其选择的配置 1 敏感的 USB 设备更兼容。当这个设置打开时,内核与设备的唯一交互是查询设备描述符,但是目前外部集线器不能在这个设置打开的情况下使用。

PingInterval 默认值为4秒。这是从服务器到客户端的 ping 消息之间的秒数。客户端需要使用PingTimeout响应(见下文),然后才会考虑丢弃套接字并清理连接。有时,如果网络连接不稳定,套接字可能会断开,并且此设置和以下设置有助于针对不稳定连接调整服务器,但是您几乎应该始终将这些设置保留为默认值。

PingTimeou t默认值为9秒。如果服务器在此时间之后没有收到来自客户端的响应 ping,则认为连接已断开并已清除。

ControlTimeout 默认值为3秒。如果设备表现不佳(由于某种原因卡住),则此设置会检测到并在此时间内向客户端返回错误,而不是无限期地等待…

UseAvahiServiceFile (仅限 Linux)如果设置为1,VirtualHere 服务器将向 Linux 操作系统上的内置 avahi-daemon 注册自己。默认是0这意味着 VirtualHere 服务器将使用其内置的小型 avahi 类型服务器 (mdns)

ReverseClients (新,如果您升级到(至少)服务器 2.4.5 和客户端 3.1.1,则可以直接在 GUI 或客户端 API 中进行配置,无需手动编辑服务器配置文件),此设置将使服务器启动到客户端的连接,而不是客户端启动连接的通常方式。这对于防火墙或 NAT 后面的服务器很有用。指定每个客户端的主机 ip 和可选端口,以逗号分隔。例如ReverseClients=192.168.2.129,192.168.2.110。如果未指定端口,则默认为 7573,这是标准的 virtualhere 反向查找端口。在客户端中,确保在右键单击 USB 集线器 -> 指定集线器 -> 防火墙/NAT下选中启用反向连接。服务器将尝试依次连接到每个客户端。

ReverseClientsRetryPeriod 默认为 15 秒。这是服务器尝试反向客户端的连接尝试之间的秒数(它还没有连接到)。

以下是高级参数,因此仅在购买的服务器上支持

TCPPort 这是 VirtualHere 服务器运行的 TCP 端口,如果未指定,则默认为7575. 您可以指定任何未使用的端口号,也可以使用 0 指定随机端口。(客户端仍然可以通过 bonjour 广播自动自动查找服务器)。

ClientIdMap 此设置允许您将客户端 ID重新映射到昵称。甲客户端ID是当在客户机的日志,它是由在客户机OS确定在自动传递和具有格式 <空间>(<用户名>)。例如,如果客户的用户名为“Michael Jones (michael)”,您可以将客户 ID 更改为“Mick”,那么这将出现在其他客户的使用信息中。这种设置格式是ClientIdMap=,[,,…]例如ClientIdMap=Michael Jones (michael),Mick,Steve Jones (steve),Steve. 客户端 ID 必须与客户端的用户名和全名完全匹配。这可以通过右键单击使用中的设备并查看属性中的 USER: 条目来找到。

HideClientInfo 默认值为0(false)。如果设置为1Device In-Use 信息不会显示给其他客户端

NetworkInterface ( Linux Only ) 这指定将服务器绑定到哪个网络接口。如果未指定(默认),则服务器将侦听所有网络接口上的传入客户端连接。否则,如果您有多个网卡并且只想侦听其中一个,请指定将服务器绑定到的 IP 地址。

ClientAuthorization 这指定了要运行以授权特定用户/设备组合的脚本。

ClientDeauthorization 与ClientAuthorization相同,除了在用户与设备断开连接时调用

SSLCert 用于 SSL 传输的 ssl PEM 证书文件(包含未加密的公钥和私钥)的完整路径。如果指定了此参数,则与服务器的所有通信都将通过 SSL 而不是普通 TCP 运行。端口将在下面的 sslPort 设置中指定。有关 SSL 的更多信息,请参见此处

SSLPort 如果指定了sslCert参数,则此端口将用于客户端通信。端口默认为7574

SSLUseClientCerts 将此参数设置1为打开客户端 SSL 证书。如果启用,VirtualHere 客户端必须在连接时向服务器提供 SSL 客户端证书

SSLCAFile 此文件包含使用服务器和客户端 SSL 证书的 PEM 编码证书颁发机构 (CA) 可信根证书。

VirtualHere 服务器还包含一个事件处理系统,可以将其配置为在特定时间调用脚本。这对于解决设备怪癖或执行特定操作(如日志记录)很有用,请参见 此处

{mtitle title=end/}

针对前述的问题,我们需要关注的是 AutoAttachToKernel 这个参数,这个参数决定了USB设备没有在被远程客户端时,能否被服务端主机使用。很显然,根据文档的描述,这项功能在NAS、Android 和 Debian平台默认是开启的,所以很不意外的,在openwrt系统开启VirtualHere后,系统的USB设备就不能再被主机自己使用。
解决方法很简单,那就是编写一个配置文件,将这个功能设置为开启就好了,下面来介绍如何解决。

创建config.ini配置文件

在不同的系统环境中,config.ini可能不会自动创建,我们需要手动来创建一个config.ini文件,在config.ini文件中写入以下参数:

AutoAttachToKernel=1

然后保存文件。前述的各项参数,不必全部写入config.ini配置文件,缺省项目会自动使用系统默认配置,只需写入需要修改的项即可。

附加config.ini启动VirtualHere

将config.ini保存到与VirtualHere程序相同的目录,输入以下命令启动VirtualHere,注意修改文件所在的路径。

/etc/VirtualHere/vhusbdx -b -c /etc/VirtualHere/config.ini

做完这些工作后,问题就解决了,现在USB设备没有被远程使用时,主机自身也可以使用。

VirtualHere常用命令

usage: vhusbdx [-bhliqnu] [-c <configuration file>] [-r <log file>]
options:
-b run as daemon in the background 作为守护程序运行在后台
-c configuration file 加载配置启动
-h display this usage 帮助
-l display license text 许可证信息
-i prefer ipv6 (dual/stack) 使用IPV6网络
-r log to file instead of syslog 输出日志文件

 注册示例:"可把网络设备上的USB设备映射到本地主机。启用后到 http://www.virtualhere.com/usb_client_software 下载对应构架的客户端到本地主机运行。<br />注册:在客户端的USB共享器上右键-设备信息-输入许可码(xxxxxxxxxxxx为设备信息中的s/n):xxxxxxxxxxxx,999,MCACDkn0jww6R5WOIjFqU/apAg4Um+mDkU2TBcC7fA1FrA=="))

2020年8月9日星期日

Windows 使用高级技巧

一、创建目录的软连接:

以管理员身份运行命令提示符,输入mklink /j 并按一下空格键,此时不要回车先放着,我们键入即将生成软连接的目录路径, 两次复制路径之间要加入【空格键】,再次键入真实目录的路劲。
如果说你的文件夹有空格,那就要用英文的【”】这一个符号把路径框起来,像这样。

示例:

mklink /j "D:\Users\李宇鸿\Pictures\Lightroom" "M:\0-Data\Lightroom"

"D:\Users\User\Pictures\Lightroom" 即将生成软连接的目录
"M:\0-Data\Lightroom" 真实存在的目录

正常下可以回车,如果出现文件已存在就把即将生成软连接的文件夹删掉,当原本文件夹下出现一个带有像是“快捷方式”一样的角标的文件夹后,我们可以打开软件验证一下看看是不是还是能正常读写。注意,虽然软连接长得像是快捷方式,但他们完全不是一个东西。

1.建立举例

建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录。
mklink /d d:\develop \\138.20.1.141\e$\develop

建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录。
mklink /d d:\recivefiles \\138.20.1.141\e$\recivefiles

2.删除举例

删除虚拟的链接目录,并不会删除远程文件夹真实文件,注意千万不能用del,del会删除远程的真实文件。
rmdir d:\recivefiles
rmdir d:\develop
3.常用路径
mklink /j "C:\Windows\Temp" "B:\TEMP"

二、Win10自带输入法的使用技巧

U模式:输入u后直接输入对应的代码即可快速输入相关字符。
V模式:输入v后直接输入数字即可看见大小写转换。
emoji、颜文字与符号面板:使用 Ctrl + Shift + B 即可唤出。

三、查看系统信息

Win+R输入control.exe /name Microsoft.System,回车 ,打开Win10系统的关于。
快捷键win+printerscreen来打开
Win+R输入 msinfo32 ,回车 ,打开系统信息。

四、系统设置

1.开启休眠功能:在cmd 命令窗口中输入 powercfg -h on
2. 关闭休眠功能:在cmd 命令窗口中输入 powercfg -h off
3.即可将这台计算机的 C:\Hiberfil.sys 减小为 物理内存的 70%。powercfg -h -size 70

五、家庭版升级专业版

Win10家庭版升级到专业版密钥 (任选其一即可)
J7QT3-3GCPG-9GVWT-CH2XR-GMRJM
VK7JG-NPHTM-C97JM-9MPGT-3V66T

六、新增本地账户

1、win键+R键 打开运行
2、输入netplwiz 回车打开设置界面

Docker 安装 OpenWrt

拉取 OpenWrt 镜像

docker pull unifreq/openwrt-aarch64:latest
docker pull kanshudj/n1-openwrtgateway:r20

# 任选一,如镜像作者在官方 hub 增删改过标签而无法拉取,请对照官方信息。

导入OpenWrt 镜像
docker load -i openwrt-aarch64.tar
docker import /root/openwrt-armvirt-64-default-rootfs.tar.gz openwrt:r20.01.24

宿主机开启网卡混杂模式 promisc

# 启用
ifconfig eth0 promisc
#ifconfig wlan0 promisc

# 关闭
ifconfig eth0 -promisc
#ifconfig wlan0 -promisc

# 查询
ifconfig eth0 => 成功标志:PROMISC

#ip link set eth0 promisc on
#ip link set wlan0 promisc on/off
# https://wangchujiang.com/linux-command/c/ip.html

# 设置 promisc 模式重启会失效,解决:
方法 A:
# SSH 命令:
sed -i '/exit 0/i\ifconfig eth0 promisc' /etc/rc.local
#sed -i '/exit 0/i\ip link set eth0 promisc on' /etc/rc.local

方法 B(未测试):
# 编辑 /etc/network/interfaces 加入
iface eth0 inet manual
  up ifconfig eth0 0.0.0.0 up
  up ifconfig eth0 promisc
这一步可以忽略。

Wikipedia:一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。网卡的混杂模式一般在网络管理员分析网络数据作为网络故障诊断手段时用到,同时这个模式也被网络黑客利用来作为网络数据窃听的入口。在 Linux 操作系统中设置网卡混杂模式时需要管理员权限。在 Windows 操作系统和 Linux 操作系统中都有使用混杂模式的抓包工具,比如著名的开源软件 Wireshark。

创建 macvlan 网络

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 macvlan

# 解释:
从宿主机 eth0 网卡虚拟出子网卡接口,子网段是 192.168.0.0/24,网关是 192.168.0.1 的 macvlan 网络,名字叫 macvlan。
一个 eth0 只能创建一个 macvlan 网络,但有其它办法多开。

参数:
-d macvlan              # 创建类型为 macvlan 网络模式。
--subnet                # 创建大池网段,指定容器网段获取范围。
--ip-range              # 创建小池网段,指定容器网段获取范围。
--gateway               # 网关,继承宿主机所在网关(主路由 IP )。
-o parent=eth0          # 解释:-o -> option / parent=eth0,指 macvlan 模式继承的物理接口。
-o macvlan_mode bridge  # macvlan 模式,默认就是 bridge,不用理会。
macvlan_lan             # 定义该 macvlan 的名字。
查看 macvlan 是否创建成功

# 查看命令
docker network ls

# 查看 docker 网桥详细
docker network inspect macvlan_lan

创建 OpenWrt 容器

# 忽略
docker rm -f OpenWrt

# 运行
示例:
docker run --restart always -d --network macvlan --privileged unifreq/openwrt-aarch64:latest  /sbin/init

docker run -d \
    --restart always \
    --privileged \
    --network macvlan \
    --ip 192.168.2.200 \
    unifreq/openwrt-aarch64:latest

# 参数:
-d                  # 后台运行
--name              # 容器名字
--restart always    # 自启
--privileged        # 容器提权
--network           # 指定哪个 macvlan 网络,这里是 macvlan
--ip                # 必须指定 ip,防止局域网 ip 冲突

查看容器名称
docker ps -a


查看 OpenWrt 网络配置

docker exec 查询出来的容器名称 ifconfig
示例:
docker exec 0ae353551c4d ifconfig

# 查看到 br-lan 显示的是错误地址 192.168.1.1,下面会修改成正确地址。
# 只看到 lo 请忽略。
进入 OpenWrt shell 修正网络参数

docker exec -it 0ae353551c4d bash

vi /etc/config/network
按下 i

# 建议 proto 使用 static 而不使用 dhcp。
config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.0.200'
        option netmask '255.255.255.0'
        option gateway '192.168.0.1'
        option dns '192.168.2.1'
        option ip6assign '60'

# 退出保存
esc -> :wq

# 重启 OpenWrt 网络服务,确认修改
/etc/init.d/network restart
ifconfig

# 退出 OpenWrt shell
exit

# 重启 OpenWrt
docker restart 0ae353551c4d

检查网络状态

docker exec OpenWrt ping 192.168.2.1    # 主路由
docker exec OpenWrt ping 223.6.6.6      # 外网
访问 Docker OpenWrt

后台:192.168.2.200
用户:root
密码:password 或 admin

# 检查设置
1.OP 打开网络 => 接口 => LAN 修改 => 网关/DNS:主路由 IP。

2.OP 打开网络 => 防火墙 => 自定义规则,添加后重启防火墙。
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

3.主路由 Padavan 设置,解决访问网站慢或在线视频卡顿。
外部网络 WAN -> 外网设置选项卡 -> IPv4 硬件加速,由 OFFLOAD TCP/UDP for LAN/WLAN,修改为 OFFLOAD TCP/UDP for LAN
路由部分

OP 打开网络 => 接口 => LAN 修改 => DHCP 服务器 (勾选忽略此接口)
主路由 Padavan 设置 => 内部网络 LAN => DHCP 服务器 => 默认网关:192.168.0.200/DNS 服务器:192.168.0.200
检查方式:OpenWrt => 状态 => 实时信息
注意善用 OpenWrt 网络 => 诊断功能。
至此完成 Docker OpenWrt 旁路由安装。


Docker镜像的导入导出

本文介绍Docker镜像的导入导出,用于迁移、备份、升级等场景,准备环境如下:

查看镜像:

docker images

查看容器:

docker ps -a

导入导出命令介绍

涉及的命令有export、import、save、load

①save 保存

命令

docker save [options] images [images...]

示例:

docker save -o nginx.tar nginx:latest

或

docker save > nginx.tar nginx:latest

其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

②load 导入

命令

docker load [options]

示例:

docker load -i nginx.tar

或

docker load < nginx.tar

其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

③export 导出

命令

docker export [options] container

示例:

docker export -o nginx-test.tar nginx-test

其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

④import 导入

命令

docker import [options] file|URL|- [REPOSITORY[:TAG]]

示例:

docker import nginx-test.tar nginx:imp

或

cat nginx-test.tar | docker import - nginx:imp

⑤区别

export命令导出的tar文件略小于save命令导出的

export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出

基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。

⑥建议

可以依据具体使用场景来选择命令,

若是只想备份images,使用save、load即可;

若是在启动容器后,容器内容有变化,需要备份,则使用export、import。

wget高级用法

有个小资料站想整站下载保存,想起 wget 能胜任,Google 找来方法,wget 确实好用。

wget 是一个从网络上自动(可以在用户退出系统的之后在后台执行,直至任务完成)下载文件的自由工具,支持 HTTP,HTTPS 和 FTP 协议,可以使用 HTTP 代理。

wget 镜像/下载整站
wget -m 镜像站点
wget -m --no-check-certificate www.example.com
-m —— 镜像 (–mirror 等价于 -r -N -l inf -nr)
--no-check-certificate —— 不检查 SSL 证书

以递归的方式下载整站,并将页面中链接转换为本地链接
wget -r -p -np -k http://www.example.com
说明:

-r, –recursive(递归)
-k, –convert-links(转换链接、将 HTML 页面中的链接转换为相对链接即本地链接)
-p, –page-requisites(下载所有的图片等页面显示所需的内容)
-np, –no-parent(不追溯至父级)
–restrict-file-names=nocontrol 用来解决中文乱码问题(需要可以试试)
使用 wget 同步网站镜像
wget -m -L –reject = http://www.***.com/***/
来源:(原创)使用wget同步网站镜像的方法

下载整个 example.com 网站
wget --random-wait -r -p -e robots=off -U mozilla http://example.com
wget 其他使用技巧
来源:wget 使用技巧

wget -r -np -nd http://example.com/packages/
下载 http://example.com 网站上 packages 目录中所有文件。其中,-np 作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。

wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
与上一条命令相似,但多加一个 --accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。也可以指定多个扩展名,只需用逗号分隔即可。

wget -i filename.txt
常用于批量下载,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动下载所有文件。

wget -c http://example.com/really-big-file.iso
这里所指定的 -c 选项的作用为断点续传。

wget -m -k (-H) http://www.example.com/
用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。

wget -nd -r -l1 --no-parent http://ooxx.com/packages/
下载 packages 目录下所有文件:-nd 不创建目录;-r 递归下载;-l1只下载当前目录下的文件;–no-parent 不下载父目录中的文件。

wget -nd -r -l1 --no-parent -A.ipk -A.gz http://ooxx.com/packages/
只下载 http://ooxx.com/packages/ 下 .ipk 文件和 .gz 文件。

wget -c -r -np -k -L --reject=html http://mirrors.rit.edu/rpi/images/ -e robots=off
下载网站目录下除 html 外的文件和目录,且不遵守 robots.txt 限制。

wget 各种选项分类列表
来源:博客教主 - (整理)wget 参数用法详解

启动
-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND 执行 `.wgetrc' 格式的命令,wgetrc 格式参见 /etc/wgetrc 或 ~/.wgetrc

记录和输入文件
-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名

下载
–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O –output-document=FILE 把文档写到FILE文件中
-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀
-c, –continue 接着下载没下载完的文件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率

目录
-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程目录

HTTP 选项
–http-user=USER 设定HTTP用户名为 USER.
–http-passwd=PASS 设定http密码为 PASS.
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
–header=STRING 在headers中插入字符串 STRING
–proxy-user=USER 设定代理的用户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL’头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
–cookies=off 不使用 cookies.
–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

FTP 选项
-nr, –dont-remove-listing 不移走 `.listing’文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

递归下载
-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr.
-p, –page-requisites 下载显示HTML文件的所有图片

递归下载中的包含和不包含(accept/reject)
-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录
wget -S –spider url 不下载只显示过程

2020年8月8日星期六

安装docker


安装docker

①快速安装
apt install docker.io
或
apt install docker-compose           ( 会自动安装docker.io )



②常规安装
国内主机先添加源及公钥后更新索引
使用docker-ce清华源:
deb [arch=arm64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian buster stable
安装docker-ce源公钥:
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -

开始安装
apt install docker-ce
apt install docker-ce-cli
apt install docker-compose


③Docker的启动与停止
systemctl命令是系统服务管理器指令
启动docker:
systemctl start docker

停止docker:
systemctl stop docker

重启docker:
systemctl restart docker

查看docker状态:
systemctl status docker

开机启动:
systemctl enable docker
 
查看docker概要信息
docker info

查看docker帮助文档
docker --help


④ 设置ustc的镜像
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。

https://lug.ustc.edu.cn/wiki/mirrors/help/docker

编辑该文件:
vi /etc/docker/daemon.json 
在该文件中输入如下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker system prune -a -f
支持的子命令有:
-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;
-f, --force:强制删除镜像文件,无需弹出提示确认;
另外,执行完 docker image prune 命令后,还是告诉我们释放了多少存储空间!

docker rm -f `docker ps -a -q`               # 删除所有容器
docker rmi -f `docker images -q`           # 删除所有的镜像

Docker--容器实例和镜像的删除与备份

Docker--删除容器实例和镜像

一、删除容器实例

使用命令docker rm 容器ID或者容器名(IMAGE ID)

1、docker ps -a查询已有的实例

# docker ps -a

2、docker rm 容器ID或者容器名,删除已经停止运行的实例。如果没有停止,使用docker stop ID/NAMES停止实例,或者使用docker rm -f 容器ID或者容器名强制删除。 

# docker rm -f 

 3、再次使用docker ps -a查询已有的实例

# docker ps -a

二、删除镜像

使用命令docker rmi -f 容器ID或者容器名(IMAGE ID)

1、docker images查询已有的实例

# docker images

2、使用docker rmi -f 删除hello-world的镜像(-f表示强制操作)

# docker rmi -f fce2

三、删除所有操作(批量) 

docker rm -f `docker ps -a -q` # 删除所有容器

docker rmi -f `docker images -q` # 删除所有的镜像


Docker容器备份迁移


1. 容器生成新的镜像

-p : 在commit时,将容器暂停

docker commit -p be14de974ce4 onlyoffice20230628:7.3.3

查看镜像大小

ll -h onlyoffice20230628.tar

2. 将镜像保存成一个tar压缩包

docker save onlyoffice20230628:7.3.3 > onlyoffice20230628.tar

3. 在另一台主机上加载镜像的tar压缩包

docker load -i onlyoffice20230628.tar