## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"# Host alias specification# User alias specification# Cmnd alias specification#网络操作相关命令别名Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/netstat## Installation and management of software#软件安装管理相关命令别名Cmnd_Alias SOFTWARE = /usr/bin/apt-get,/usr/bin/snap## Services#服务相关命令别名Cmnd_Alias SERVICES = /sbin/systemctl,/usr/bin/docker,/usr/snap/docker## Storage#磁盘操作相关命令别名Cmnd_Alias STORAGE = /sbin/fdisk,/sbin/sfdisk,/sbi
首效会失败,因为在创建数据库,创建完数据库后,(大约97个表),重新docker-compose up
书接上文,上篇《85元搞定全屋WIFIf无缝漫游,就问你香不香?》发布后,得到了小伙伴们的热情支持,在此感谢点赞打赏的小伙伴们!说明一下,文中WIFI系统一直正常稳定运行至今,漫游切换迅速,小伙伴们可以放心参考组建哦!
阅读此文之前,强列建议先移步:《85元搞定全屋WIFI无缝漫游,就问你香不香?》
使用集客固件组建的全屋WIFI自动漫游系统,工作性能和运行稳定性令人满意,集客AP固件管理、配置简单易行,容易上手,但是存在一个(巨大)的缺点,这也是在上文跟贴互动中很多小伙伴所纠结的:主路由不能参与AP们的漫游!主路由不能参与AP们的漫游!虽然选用的都是价格低廉的路由器,但多一台路由器,相应的引起多占用一处电源,安装、摆设等一系列衍生问题。
比如我这套房子,客厅和餐厅的覆盖靠设置在客厅电视柜处(A点)的AP来实现,如果能把入户玄关弱电箱处的主路由无线利用上,则可以取消A点处的路由器,同样能实现客餐厅的完全覆盖,这样布置,甚至厨房、生活阳台的信号强度还会更好。
802.11r协议目的就是减少漫游认证所需的时间,手机在两个无线路由器之间漫游时,使手机能够从一个无线路由器迅速断开连接,并重新连接到另一个无线路由器。这个切换过程理论上延迟时间不超过50毫秒。802.11r改善了移动的手机等设备在接入点之间运动时的切换过程。协议允许一个无线客户端在实现切换之前,就建立起与新接入点之间安全认证,大大减少无线接入时认证时间,因此快速切换得以实现。虽然802.11r协议已问世超过10年,但目前支持802.11r协议的固件却不算很多,比较常见的有LEDE和OpenWrt。
其实我在使用集客固件之前就考察过802.11r方案,但是一方面是因为个人比较喜欢老毛子简单直观又功能强大的系统,另一方面是802.11r的配置相对集客固件要复杂得多,好在现在新版OpenWrt固件已经支持Generate PMK Locally功能,极大的降低了802.11r的配置难度。
下面就以我手头的一台小米路由器MINI,一台斐迅K1为例,实战OpenWrt&820.11r协议组建漫游网络。其中小米路由器MINI就是之前刷老毛子当主路由的那台,斐迅K1是前几天朋友升级退役下来的老货(说信号不够好,我拿我自已的K2给他换下来的)。
wget -qO- https://get.docker.com/ | sh
docker --versiondocker infodocker run hello-world
docker image ls
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stopdocker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rmdocker images|grep none|awk '{print $3 }'|xargs docker rmi
mkdir ./docker1 #创建工作目录cd ./docker1vi Dockerfile #创建Docker镜像描述文件vi requirements.txt #创建依赖文件vi app.py #程序文件docker build --tag=py1 . #打包镜像 tag为镜像名,后面点号为本目录docker image ls #查看刚打包的镜像
#进docker容器docker run -it 镜像名称 /bin/sh查看编码locale -a例如是:C.UTF-8则,在Dockerfile中加入环境变量ENV LANG C.UTF-8
docker run py1 #运行镜像#将宿主机4000端口映射到docker 80docker run -p 4000:80 py1# 将容器中的/app/data 映射到 /var/lib/docker/volumes/test#卷映射,如果首次运行test不存在,自动创建,并复制/app/data中的内容docker run -v test:/app/data ...# 目录映射,将宿主机的/data映射到/app/data,注意是绝对路径# 目录映射首次启动不会复制任何数据docker run -v /data:/app/data ...
tar命令实现增量备份
tar -g snapshot -cf backup_full.tar.gz test #全量
tar -g snapshot -cf backup_incremental_1.tar test #增量1
tar -g snapshot -cf backup_incremental_2.tar test #增量2
进行还原
tar -xf bac