UnRAID_6.8.2_配置_设置

转载注明来源: 本文链接 来自osnosn的博客,写于 2020-10-05.

参考:

UnRAID download

Getting_Started

Official Documentation

unraid forums

unRaid系列二:认识界面并配置教程

QEMU(4) q35,SeaBIOS(2)-硬件架构

NAS最强攻略:使用UNRAID系统,搭建ALL IN ONE全过程

下载,安装,参考官方文档。

  • 我安装/配置,用的是UnRAID-6.8.2
  • u盘必须是FAT或FAT32格式,因为FAT,FAT32才支持启动。usb2.0/3.0都行。只是usb3.0的读写快些。据说用SLC芯片的u盘寿命长。
  • u盘必须有"序列号",最后16位不能是全零,否则unraid不认/不能注册,unraid的GUID是由"VID-PID-设备序列号的后16位"组成。

    chipGenius(芯片精灵)工具可以看到,有无: VID,PID,序列号。

    一般有品牌的u盘都OK,知名主控芯片的u盘也OK。实在没有序列号,用量产工具自动生成一个序列号刷入。
  • 可以用官方推荐的工具 USB_Creator.exe 写U盘。写之前无需对U盘改名。(它不认无序列号的u盘。导致无法选择U盘,无法继续)
  • 手工写U盘,参看官方文档。也能支持UEFI启动。
    • 确定u盘是fat32,否则格式化为fat32.
    • 把unraid的文件解压到u盘根目录。把卷标名改为"unraid"
    • 打开dos窗口,执行u盘根目录的 make_bootable.bat。 完成。
  • 记得,做了任何配置的更改。都要备份u盘的config/目录。因为unraid的u盘很容易坏。

    备份的办法,很简单,把config目录整个打包成压缩文件(zip,tar,7z都行),copy出来另存即可。

启动后,初始配置。

  • DASHBOARD 中,给主机改个名,缺省名为"Tower".
  • MAIN 中,添加一个 Disk,(parity,cache按需添加,也可以不添加)。START Array(开启阵列)。看到有个提示"Unmoutable"无法挂载的磁盘,选择 FORMAT 格式化一下。
  • MAIN->Boot Device->Flash,有个警告,说是被共享了,不安全。点 Flash 进去,在 SMB Security Settings->Export 选 NO,不共享。(按需设置)
  • SETTINGS->Date and Time, 设置一下时区,按需修改同步用的时间服务器。

    ntp1.aliyun.com,time.pool.aliyun.com,time.nist.gov,cn.pool.ntp.org,0.debian.pool.ntp.org
  • 修改/设置 root 的密码。在 USERS 点 root,改密码。(如果忘了密码,官方文档有说明,修改u盘 /config/shadow 文件重置密码)
  • 创建一个普通用户,用来访问共享文件。在 USERS 中创建。
  • 在 SETTINGS->Management Access 中,关闭 TELNET 的访问。留着 SSH 就行了。
  • unraid 在单位代理服务后面,不能直接访问外网。这有几篇文章(我没试过,不知道行不行):

装APP商店

显示主板温度

  • ssh 登录 unraid,打命令 sensors,可以显示cpu和主板温度。但 web 界面中没有。
  • 参考: unRaid系列八:显示主板、CPU传感器温度

    先在NerdTools装perl,再装显示温度的app Dynamix System Temperature

    https://raw.github.com/bergware/dynamix/master/unRAIDv6/dynamix.system.temp.plg

挂载移动硬盘

  • 有个app,叫 "unassigned.devices" , 地址是:

    https://github.com/dlandon/unassigned.devices/raw/master/unassigned.devices.plg,

    https://github.com/dlandon/unassigned.devices/raw/master/unassigned.devices-plus.plg

    plus 支持 exFat,HFS+

网卡直通

  • 看VedioTalk的视频,看"下集UNRAID NAS系统配置双软路由,完美直通网卡,CPU"

    注意, 他视频中的四个网卡是分别在4个group中,所以只要更改一下GUI的启动参数,然后接上显示器,去GUI中创建一个虚拟机的样本(最小内存,硬盘选none,勾上3个直通网卡)保存即可。以后创建虚拟机,就去抄这个样本中的直通代码。如果碰到XML error: Attempted double use of PCI Address '0x05'这样的错误,就把05改07,08,09,0A,...改到不出错即可。

    下次再建新虚拟机,抄完代码又不出错了。奇怪。
  • 还有个简便的方法,就是装VFIO-PCI.CFG插件,看 unraid如何实现多口网卡直通。勾选之后,创建虚拟机时,直接有直通网卡选择。

    https://raw.githubusercontent.com/Skitals/unraid-vfio-pci/master/plugins/vfio.pci.plg
  • 如果你的多个网口,是在同一个group中。我不知道怎么搞,我的机器没这问题。

命令行工具

  • 用 NerdPack 装,这些命令行工具是装在 U盘中的。跟着unraid系统的。
  • 比如: tmux, python3, p7zip, unrar, vim, tcpdump, ... (看自己需要吧)

安装OpenWRT

  • 下载镜像, OpenWrt Downloads -> Stable Release -> x86 -> 64 -> combined-ext4.img , 参考【OpenWrt-官网知多少】。这个是稳定版。
  • 把 openwrt 的 img 镜像 copy 到 /mnt/user/domains/openwrt-xxx/, 目录名自己定义。多建一层目录是方便管理。

    把 目录和img文件的 owner 设为 nobody.users, 目录的权限为 777,文件的权限是666。

    chown nobody.users openwrt-xxx.img, chmod 666 openwrt-xxx.img
  • 创建虚拟机VM。修改"名称"和"描述"。
  • CPU按需给,1个或2个,内存256MB就够了。如果你的实际内存很多,那就分512吧。
    • (仅拨号上网占不到60M,再跑4个大进程才用到168MB内存,比如radiusd)
  • Machine: 选 Q35最新版,或者 i440fx最新版,看不出区别。都行。
  • BIOS:SeaBIOS 传统启动兼容性好。(OVMF是UEFI,不知道openwrt行不行)
  • Primary vDisk Location: 选 manual,指定openwrt的img文件。 vDisk Bus: 选VirtIO,SATA,或IDE,选SCSI不能启动。
    • openwrt-19.07.4-x86-64-combined-ext4.img 这个镜像vm中可以直接用来启动。

      root分区252MB,剩余空间220多MB,装东西的话,基本够用。

      • 如果要扩容, 用qemu-img resize扩容,或者直接在img后添加全零字节dd if=/dev/zero bs=1M count=100 >> combined-ext4.img

        losetup -f combined-ext4.img挂载到loop4, 用cfdiskfdisk调整分区。

        partx /dev/loop4加载分区表到内核。用resize2fs /dev/loop0p2扩展第二分区(rootfs)。可以fsck一下。

        最后partx -d /dev/loop4卸载内核分区记录。losetup -d /dev/loop4卸载loop设备。
    • openwrt-19.07.4-x86-64-combined-squashfs.img 这个镜像vm中也可以启动。

      我知道可以用它来刷路由器。vm中,好像要先创建个磁盘,然后刷进去。下面尝试直接用img启动,并扩容。

      • 直接用这个img启动,第一次启动,网络都无法启动。打命令firstboot;reboot之后。

        overlay只有66kb的空间,连配置都保存不了,重启就恢复出厂。

        关闭vm,在unraid中用命令,对刚才的img扩容qemu-img resize combined-squashfs.img +200m,

        再次启动,overlay还是只有66kb,firstboot再重启,还是剩66k。
      • 再测试,重新copy一份原始的combined-squashfs.img,先用命令扩容,再启动。

        overlay居然扩容成功了,有190mb空间。(最多可以扩容+256MB)
      • 另: unraid中,如果直接用cfdisk combined-squashfs.img打开这个文件,可以重新分区。可是改动后,这个img就不能启动了。

        应该用losetup -f combined-squashfs.img挂载到loop设备,再调整分区。应该可以超过256MB限制。

        里头有两个分区,squashfs 和 ext4 , 扩的是ext4分区(overlay)。
      • 其他参考: 【OpenWrt全硬盘安装方法】【OpenWrt x86 磁盘扩容
  • 其他默认吧。
  • 然后,网卡直通,抄一下之前的虚拟机样本中的直通代码。如装了VFIO-PCI.CFG插件, 直接勾上需要直通的网卡即可, 不用抄代码了。
  • 就可以启动VM看看了。
  • 通过虚拟终端,登录 openwrt,编辑 /etc/config/network 修改 lan 口 IP,重启网络。就可以通过 web 访问 openwrt。

    重启网络, 用任意一个指令都行: /etc/init.d/network reload,/etc/init.d/network restart,reboot
  • 修改/etc/opkg/distfeeds.conf 改为清华大学源 , 把 downloads.openwrt.org 改为 mirrors.tuna.tsinghua.edu.cn/openwrt 即可。
    • 安装wget的https支持opkg install wget ca-bundle , 然后把distfeeds.conf中的http:全部改为https:
  • 为了安全,不建议对外网开放ssh登录,不开放外网的web管理页。(更改端口,再把root的用户名改了,再设置一个超长密码,才考虑开放外网访问)
  • Network -> Firewall -> General Settings 中,有三个 reject 改为 drop。

    参考【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务】关于"默认规则drop/reject"部分。
  • 定时检查网络,不通就重拨。参考【OpenWRT19.07_命令行_重拨wan_重启路由
  • 改图标,参考 教你UNRAID虚拟机自定义Docker图标icon方法

Lean 的 Openwrt

  • 下载 Lean Openwrt
  • 安装方法一样。
  • 这个版的,用的最新测试的snapshot。比上面那个官方稳定版openwrt新,特性会更新,但可能有bug。

unraid 的 ipv6

  • unraid 可以获取到 ipv6 ,通过 dhcpv6/slaac 得到两个ip。

    在 settings -> network settings 中有个 IPv6 privacy extensions 选项。

  • 如果要改为 eui64。需改 /etc/dhcpcd.conf 文件,并重启 dhcpcd 进程。比较麻烦。
    • config/go 脚本执行时机晚于 dhcpcd的执行。
    • 重启 dhcpcd,
      • 办法1,杀了它,再按原参数重新运行。
      • 办法2,执行 /etc/rc.d/rc.inet1 br0_restart。这个办法只重启了unraid的br0。vm的直通网口不影响,但连接的br0会丢失。除非再重启vm。
    • (未测试)似乎不能在config/go中直接修改sysctl -w net.ipv6.conf.br0.use_tempaddr=0达到设置eui64的目的。
  • 在openwrt中静态分配ipv6地址给 unraid,从而固定它的ipv6后缀。
    • 其实openwrt分配的ipv6后缀和客户机的 DUID 是对应的。基本不变。

      不过openwrt改不了客户机的DUID,也不能直接指定客户机的IPv6。见:【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务
    • unraid修改自己的DUID,可以通过创建文件解决/var/lib/dhcpcd/duid,文件内容就一行,自定义的duid 01:02:03:0a:0b:0c:0d:0e:0f:11:12:13 ,然后重启dhcpcd
  • 这里给出一个例子(经测试,OK),供大家参考。在config/go 文件中添加一行 /bin/sh /boot/cnofig/modify_dhcpcd.sh
#!/bin/bash
# filename: config/modify_dhcpcd.sh
# 用途: unraid-6.8.2 中 modify dhcpcd.conf , duid
# 这个文件config/duid自己创建。(自定义DUID,格式)->"00:01:02:03:0d:0e:0f:cc"
/bin/cp /boot/config/duid /var/lib/dhcpcd/duid
/bin/sed -i 's/^#slaac hwaddr/slaac hwaddr/g;s/^slaac private/#slaac private/g' /etc/dhcpcd.conf
if [ -f /run/dhcpcd-br0-6.pid ]; then
kill $(cat /run/dhcpcd-br0-6.pid )
# 下面这行,自己在unraid中用ps命令查看,记录下参数。然后修改为你自己机器中的参数。
dhcpcd -b -q -t 10 -h myName_Tower -C resolv.conf -6 br0
fi

docker

设置开机启动的东西

  • Array(阵列自动启动)。 在SETTINGS->Disk Settings 中,第一项auto start.
  • VM 设置,哪个虚拟机自动启动。
  • docker 设置,哪个docker自动启动。

unraid 的 shell 用着不习惯

  • bash 中, 少了几个常用的alias。直接修改 .bash_profile , 重启无效。

    • 网上搜了一下,说是要解开 bzroot,修改之后再打包回去。太麻烦。
    • unraid 启动之后,最后会执行 u盘中 config/go 脚本。执行时的路径是 /boot/config/go 。

      所以可以另写个脚本,放在config目录中,然后在 go 脚本中加一行执行自己的脚本,做一些简单的修改。

      比如: 添加几行alias到.bash_profile。创建 .ssh/authorized_keys,添加一个key,方便登录。

      在config/go 文件中添加一行 /bin/sh /boot/cnofig/modify_roothome.sh
#!/bin/bash
# filename: config/modify_roothome.sh
cat >>/root/.bash_profile << __EOF__
alias l="ls -lF"
alias mv="mv -i"
alias cp="cp -i"
alias rm="rm -i"
export TIME_STYLE=long-iso
__EOF__ mkdir -m 0700 /root/.ssh
echo "ssh-ed25519 AAAAC6k------a65OhPlz test@localhost" >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

执行定时脚本(crontab)

unraid 本身是有 crond 服务进程在执行。

  • 可是,登录unraid命令行,在 root 用户下创建的 crontab,重启后都会丢失。
  • 用 config/go 脚本在每次启动时创建 root 的 crontab,太过于麻烦。
  • 安装 CA User Scripts 插件,在app商店中搜索安装。这个插件就是用来创建 root 的 crontab 。
    • 使用方法,不算麻烦。在这里创建的定时任务,重启之后还是有效。
  • 如果需要执行的定时任务,与 unraid 本身无关。
    • 可以装个docker,在app商店中搜索DebianBuster。在里面启动cron服务。缺点是,这个镜像带xfce4桌面,有点大(1.25GB)。
    • 可以装个docker,在app商店中搜索Ubuntu-Playground。这个是纯字符界面的,只有262MB。不过,cron没有,要自己装。
    • 或者创建个VM,装个Linux,那就随便搞了。

装群晖 VM

  • unRAID 虚拟群晖DSM系统|unRaid下黑群晖|VMware虚拟机安装黑群晖DSM6.2|D
  • Q35-4.2, OVMF,1GB内存,启动镜像用USB,第一硬盘用SATA,网卡改e1000。说找不到硬盘,无法安装。
  • 再换到 Q35-3.0,找到硬盘了。
  • 再换回 Q35-4.2, OVMF,1GB内存,启动镜像用USB,第一硬盘用SATA,网卡改e1000。又找到硬盘了,奇怪。
  • 启动选择第三项VMWare/ESXI with Jun's Mod v1.02 alpha,因为是在虚拟机中。
  • 然后,提供安装文件.pat,2-3分钟就自动重启了。再然后就进入漫长的初始化(超过10分钟)。
    • 装完,群晖在硬盘上开了两个分区。2.4GB分区中写入了 1.5G 的系统文件,2GB的分区不知道写了什么。(6.1.1版)。

      这个硬盘的剩余空间可以作为数据盘使用(会显示为"未使用磁盘")。
  • 群晖在开/关机时cpu占用挺高,平时占用极低。如果VM支持指定CPU,可以指定非cpu0
  • 群晖支持IPv6,可以获取到ipv6地址。其中 slaac 地址是 eui64。且在"控制面板"->"网络"中没有 private选项。

    如果要改,应该是修改 /etc/sysconfig/network-scripts/ifcfg-eth0 (未测试)。
  • 群晖有时重启后出问题,参看 黑群晖故障(抱歉,您所指定的页面不存在)问题

    两个lib文件,在你安装群晖系统用的.pat文件中找。用7zip可以打开。

    libsynopkg.so.1,libsynoshare.so.6 这两个文件建议放在群晖的 /root 目录中,下次还会再用到的。
  • 装好,放了几天。就故障,一会是"抱歉,您所指定的页面不存在",一会又看不到硬盘了。

    无奈再次重装。结果,无论怎么组合,都找不到硬盘。只好放弃玩群晖了。没意思。

装 Debian 的 VM

  • 下载 amd64-netinst.iso (约350MB), 可以去 华为镜像阿里镜像163镜像清华镜像 找。

    把 iso 文件 copy 到 /mnt/user/isos 目录中。我用的是 debian-10.6.0-amd64-netinst.iso
  • 给 Debian10, 1-2个CPU,最小内存1G,最大2GB内存,硬盘选20GB(qcow2,VirtIO), Q35-4.2 即可。
  • 1GB内存有点紧张,2GB内存足够用。
  • 20GB硬盘,分500MB做boot(一般会用到200MB),swap给1G就好。剩下全给root分区。
  • 启动光盘选择 netinst.iso
  • debian 安装过程比较人性化,硬盘选择自动分区之后,会显示分区结构,允许你再修改。确认后才写盘安装。
  • 安装时,直接给出国内镜像源的列表,让你选择。
  • 装完系统,再装上nginx,mysql,php,gcc,golang 差不多占3.3GB。只要不装GUI的桌面,怎么都够用了。
  • NetworkManager , 解决network-manager中wired为unmanaged的问题
    • 启用network-manager, 需要注释掉 /etc/network/interfaces 中 allow-hotplug eth0iface eth0 inet dhcp这两行。否则会分配两个IPv4。(如静态指定IP,不影响)
  • 装 postfix 仅作为本地邮件系统,简单而小巧.
  • 装 chrony 对时服务,用 cn.pool.ntp.org。把服务器的时间搞准。
  • 装 nginx php-cli php-fpm php-curl php-sqlite3 php-xml (默认是安装php7.3)
  • 有了 nginx,可以配置一下webdav。见:【搭建私人的云笔记_使用webdav服务】。

    Linux中获取本机的最新IPv6地址_更新ddns的脚本_获取openwrt的IP地址

    设置openwrt路由器的防火墙_允许从外网访问_ipv6服务
  • apt install python3 python3-pip; pip3 install virtualenv; pip3虚拟环境
  • 对外开放ssh端口后,总是有很多试密码的。
    • 要修改/etc/ssh/sshd_config中的几项。改端口Port 1234。禁止root用密码登录(保留证书登录)PermitRootLogin prohibit-password。重启sshd。普通用户,用难猜的名字,难猜的密码。
    • 还要装fail2ban, debian10的fail2ban 是支持ipv6的。看【Debian10_Centos8_fail2ban】。
  • vimrc , debian 的vim的缺省配置挺好的。但只要创建了 ~/.vimrc, 哪怕是空的。缺省配置就丢失了。
  • debian-10 的防火墙底层用的是nft。命令行的iptables/ip6tables的规则,其实是转换为nft规则执行的。
    • 默认没有iptables.service,也没有firewalld.service。
    • 所以建议apt install nftables; systemctl enable nfttables; nft -f /etc/nftables.conf,

      你的自定义规则可以写在/etc/nftables.conf中,系统开机会加载这个文件。
    • 不喜欢直接用nft,可以装ufw,或者firewalld。apt install ufwapt install firewalld
    • 也可以继续用iptables,用iptables-save保存规则,开机时,在rc.local中执行iptables-restore

装 CentOS8 的 VM

  • CentOS-8 对比一下 Debian-10 ,玩玩两个系统有什么不同。
  • 下载 x86_64-boot.iso (约630MB), 我用的是 CentOS-8.2.2004-x86_64-boot.iso
  • 给 CentOS-8, 1-2个CPU,2GB内存,硬盘20GB也足够玩玩了。不装GUI,占用硬盘比debian多一点,但也不超过4GB。
  • 安装过程中,选择/使用网络源安装,见【CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记】。
  • centos8 的硬盘分区。
    • 如果选择自动分区,下一步就是确认写盘,也不显示分区结构。
    • 如果选择手工,当你手工删除原有分区后,有一个选项是自动分配。可以试试。
  • sshd 改端口。禁止root用密码登录。
  • fail2ban。看【Debian10_Centos8_fail2ban】。
  • CentOS-8 默认防火墙是激活的,用的是firewalld,底层是nft表。
    • 如果安装了网络服务,记得要用firewall-cmd指令开放对应的端口。

装 ROS

  • 安装ros的特别版本。需要指定硬盘的"厂家标识"和"硬盘ID"。
  • ros 的传统版本。听说是根据硬盘id来认证。ros是离线检测。
  • ros 的chr版。是在线认证的。ros在运行中,大约每30天自动去你的账号中获取认证。

    买这种认证比较划算。可以随意迁移,功能没有任何限制,仅限制工作带宽。
  • unraid 的 vm 中,关于指定硬盘标识的信息网上很少。搜到一篇竟然看不了,要会员才能看。只好自己摸索。
  • 参考: kvm中虚机xml定义格式说明, Domain XML format,
  • PVE关于修改硬盘参数的摘抄: PVE导入ROS ESXi ovf模版
  • 镜像转换。用qemu-img convert -p -f vmdk -O qcow2 disk-0.vmdk ROS-xx.qcow2
  • 指定"厂家标识"。我没找到办法。似乎qemu不支持。
  • 指定"硬盘ID"。在<disk>..</disk>中, 加入<serial>12345678901234567890</serial>。ros只认前20个字符,超出部分丢弃。
  • 没装成功....

OPNsense , pfSense

  • 一个开源的防火墙/网关/路由,基于FreeBSD。
  • 改天试试。写在这,备忘。

待续……


转载注明来源: 本文链接 来自osnosn的博客.

UnRAID_6.8.2_配置_设置的更多相关文章

  1. Qtwebkit配置,设置交叉编译环境 - croop520的专栏 - 博客频道 - CSDN.NET

    Qtwebkit配置,设置交叉编译环境 - croop520的专栏 - 博客频道 - CSDN.NET Qtwebkit配置,设置交叉编译环境 分类: Qt Webkit 2012-04-12 15: ...

  2. ABP文档笔记 - 配置、设置、版本、功能、权限

    配置 全局仅一个单例,保存一组配置信息,一般直接在模块的预启动事件中赋值or修改.没有Scope划分,无论租户还是房东亦或者用户读取的值都不会有差异.每个模块都可以扩展这个配置. 设置 它没有层级关系 ...

  3. OCM_第十七天课程:Section7 —》GI 及 ASM 安装配置 _管理和配置 GRID /实施 ASM 故障组 /创建 ACFS 文件系统

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  4. OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. Sublime Text 3相关配置和设置

    Sublime Text 3打开txt中文乱码的解决方法 Sublime Text是一个很强大的编辑器,但是对中文的支持并不好,在Sublime Text 2 时,能够通过命令行的方式安装编码包来解决 ...

  6. IDEA中如何导入一个maven项目并配置相关设置

    导入一个maven项目参照如下链接 https://jingyan.baidu.com/article/b0b63dbf0c0ac04a49307078.html 要想启动这个导入的项目目前我所接触到 ...

  7. VMware中出现物理内存不足,无法使用配置的设置开启虚拟机解决方案

    前几天给大家分享了如何在VMware中安装CentOS系统,后来有小伙伴在群里咨询,当新建虚拟机之后,打开虚拟机会弹出“物理内存不足,无法使用配置的设置开启虚拟机”的问题,如下图所示.这里会给出提示, ...

  8. 使用php函数ini_set()重新设置某个配置的设置值

    使用PHP的ini_set()函数 ini_set (PHP 4, PHP 5, PHP 7) ini_set — 为一个配置选项设置值 说明 string ini_set ( string $var ...

  9. 前端学习笔记系列一:10整体移动vscode代码块、VSCode 使用 stylus,配置格式化设置、在vue项目中引入bootstrap

    1.整体移动vscode代码块 凭借操作的经验我们能够轻松地知道将代码整体往右移只需选中代码按Tab键即可.其实往左移也很简单: 选中之后按下 shift+Tab键 即可. 2.VSCode 使用 s ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:使用pyqtConfigure建立信号和槽的连接

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在PyQt中,一般信号和槽的连接是通过connect方法建立的,语法如下: connect(slot ...

  2. Docker部署CTF综合性靶场,定时刷新环境

    部署如DVWA或upload-labs这类综合性靶场的时候,虽然是使用Docker环境,设置好权限后容器被击穿的问题不需要考虑,但担心部分选手修改了题目环境,比如一直XSS弹窗,所以想要编写脚本每天定 ...

  3. Hadoop 中HDFS、MapReduce体系结构

    在网络环境方面,作为分布式系统,Hadoop基于TCP/IP进行节点间的通信和传输. 在数据传输方面,广泛应用HTTP实现. 在监控.通知方面,Hadoop等分布式大数据软件则广泛使用异步消息队列等机 ...

  4. pytorch实战(二)hw2——预测收入是否高于50000,分类问题

    代码和ppt: https://github.com/Iallen520/lhy_DL_Hw 遇到的一些细节问题: 1. X_train文件不带后缀名csv,所以不是规范的csv文件,不能直接用pd. ...

  5. html标签和body标签的区别

    首先想要总结这个问题就是因为在开发的过程中,在设置body的高度的时候,在浏览器窗口中并不起作用,一直都会显示是浏览器窗口的大小,所以想要搞清楚这面的原因. 一.前提 在页面的设计中,当我们没有为一个 ...

  6. CSS基础-Flexbox

    flexbox 是一种一维的布局模型,它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力. 说 flexbox 是一种一维的布局,是因为一个 flexbox 一次只能处理一个维度上的元素 ...

  7. Devpress (DxReport)使用ReportDesigner (一) 基本功能

    1. Devpress (DxReport)编辑 (1) 新建一个XtraReport. (2) 在报告上点右键添加元素:   元素说明: (1) 其中有报告头,报告尾,页头,页尾,组头,组尾,详细. ...

  8. 题解-CF755G PolandBall and Many Other Balls

    题面 CF755G PolandBall and Many Other Balls 给定 \(n\) 和 \(m\).有一排 \(n\) 个球,求对于每个 \(1\le k\le m\),选出 \(k ...

  9. python 使用UUID库生成唯一ID

      首先导包: import uuid   uuid1(): # make a UUID based on the host ID and current time     #  基于MAC地址,时间 ...

  10. oracle 11g打补丁错误(Missing command :fuser)

    在给oracle 11g数据库打补丁的时候出现以下错误: [oracle@node01 31537677]$ $ORACLE_HOME/OPatch/opatch apply Oracle Inter ...