更多请见个人主页https://www.bajins.com
编辑器
监控工具
nethogs
: 按进程查看流量占用ethtool
: 诊断工具tcpdump
: 抓包工具nload
、bmon
、slurm
、bwm-ng
、cbm
、speedometer
、netload
vnstat
、ifstat
、dstat
、collectl
iftop
、iptraf
、tcptrack
、pktstat
、netwatch
、trafshow
、jnettop
ntopng
yum update
yum install -y xz openssl gawk file
# 下载脚本
wget --no-check-certificate 'https://raw.githubusercontent.com/MeowLove/Network-Reinstall-System-Modify/master/Network-Reinstall-System-Modify.sh'
# 给脚本授权
chmod a+x Network-Reinstall-System-Modify.sh
# 一键网络重装纯净CentOS 7
bash Network-Reinstall-System-Modify.sh -CentOS_7
# 一键网络重装纯净Windows Server 2019
bash Network-Reinstall-System-Modify.sh -Windows_Server_2019
wget --no-check-certificate -qO ~/Network-Reinstall-System-Modify.sh 'https://www.cxthhhhh.com/tech-tools/Network-Reinstall-System-Modify/Network-Reinstall-System-Modify.sh'
chmod a+x ~/Network-Reinstall-System-Modify.sh
# ①. 一键网络重装纯净CentOS 7(推荐)
bash ~/Network-Reinstall-System-Modify.sh -CentOS_7
# ②. 一键网络重装纯净CentOS 6
bash ~/Network-Reinstall-System-Modify.sh -CentOS_6
# ③. 一键网络重装纯净Debian 10(推荐)
bash ~/Network-Reinstall-System-Modify.sh -Debian_10
# ④. 一键网络重装纯净Debian 9
bash ~/Network-Reinstall-System-Modify.sh -Debian_9
# ⑤. 一键网络重装纯净Debian 8
bash ~/Network-Reinstall-System-Modify.sh -Debian_8
# ⑥. 一键网络重装纯净Ubuntu 18.04(推荐)
bash ~/Network-Reinstall-System-Modify.sh -Ubuntu_18.04
# ⑦. 一键网络重装纯净Ubuntu 16.04
bash ~/Network-Reinstall-System-Modify.sh -Ubuntu_16.04
# ⑧. 一键网络重装纯净Ubuntu 14.04
bash ~/Network-Reinstall-System-Modify.sh -Ubuntu_14.04
警告:你需要购买来自Microsoft或其合作伙伴正版系统授权并激活系统使用。继续安装即代表您知悉并已经购买正版授权。
# ①. 一键网络重装纯净Windows Server 2019(推荐)
bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2019
# ②. 一键网络重装纯净Windows Server 2016
bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2016
# ③. 一键网络重装纯净Windows Server 2012 R2
bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2012R2
# ④. 一键网络重装纯净Windows Server 2008 R2
bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2008R2
# ⑤. 一键网络重装纯净Windows 7 Vienna
bash ~/Network-Reinstall-System-Modify.sh -Windows_7_Vienna
# ⑥. 一键网络重装纯净Windows Server 2003
bash ~/Network-Reinstall-System-Modify.sh -Windows_Server_2003
仅适用于高端用户,手动安装任意系统。可通过网络ISO或iPXE安装任意系统。
bash ~/Network-Reinstall-System-Modify.sh -CXT_Bare-metal_System_Deployment_Platform
如果您不了解这意味着什么,请不要进行操作。%ULR%应该替换为您自己的映像地址。
bash ~/Network-Reinstall-System-Modify.sh -DD "%URL%"
bash <(wget --no-check-certificate -qO- 'https://zhujiwiki.com/wp-content/uploads/2018/04/InstallNET.sh') -dd 'https://hao.zhujiwiki.com/dd/CentOS_7.X_NetInstallation.vhd.gz'
适用于由GRUB引导的CentOS,Ubuntu,Debian系统
yum update
yum install -y xz openssl gawk file
# 下载脚本
wget --no-check-certificate 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh'
# 给脚本授权
chmod a+x InstallNET.sh
# 一键网络重装纯净CentOS 7
bash InstallNET.sh -c 7.6.1810 -v 64 -a --mirror 'http://mirror.centos.org/centos'
tmux
是一款Linux
下的终端复用工具,可以开启不同的终端窗口来将应用程序作为后台守护进程执行,即使远程连接的SSH断开也不会影响程序的执行。
tmux
分为3
层,Session
包含Window
包含Panes
命令
可在命令后加
--h
查看命令帮助,如:tmux new --h
yum install -y tmux
安装tmux new -s 会话名称
新建会话tmux attach -t 会话名称
可进入到已经创建的会话
attach
前一部分字母,如tmux a -t 会话名称
tmux ls
列出所有会话tmux switch -t 会话名或会话编号
切换会话tmux rename-session -t 会话名或会话编号 新会话名
重命名会话tmux kill-session -t 会话名称
关闭会话tmux kill-server
关闭所有会话tmux split-pane -h
左右分屏tmux spilt-pane -v
上下分屏swap-window -s 3 -t 1
交换 3 号和 1 号窗口swap-window -t 1
交换当前和 1 号窗口move-window -t 1
移动当前窗口到 1 号tmux new -s 会话名 -d "命令"
创建新会话并在后台执行命令tmux neww -n 窗口名 -d "命令"
新建窗口名并在后台执行命令快捷键
所有的快捷键都是先按一下Ctrl + B松开,这时快捷键生效再按其他按键
tmux
命令行copy mode
,查看tmux
中的终端输出记录用PgUp、PgDn、
光标
浏览历史输出了,按q退出
copy mode
其实比较类似于vi
/emacs
里面一个只读buffer
,可以移动光标,可以搜索,用C-SPC开始选择,选择完后用
M + w拷贝(会自动退出copy mode
),]可以粘贴, =从剪贴板历史中选择。
开机运行
在
vi /etc/rc.local
文件中按Shift + g(就是大写的G)跳转到末尾添加命令
如果进入
tmux
时进行和home
相关的操作时提示$HOME
未设定,加入设置home
目录命令:export HOME=/home
为防止启动执行失败,最好执行一次
chmod +x /etc/rc.d/rc.local
进行授权
# 创建新会话并在后台执行命令
tmux new -s 会话名 -d "命令"
tmux new -s 会话名 -d "命令"
Screen
是一款由GNU
计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen
可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
命令
yum install -y screen
安装screen -S 会话名称
创建一个会话screen -ls
列出所有的会话列表screen -r 会话名称
恢复会话窗口exit
关闭会话窗口选项
-A
将所有的视窗都调整为目前终端机的大小。-d
<作业名称> 将指定的screen作业离线。-h
<行数> 指定视窗的缓冲区行数。-m
即使目前已在作业中的screen作业,仍强制建立新的screen作业。-r
<作业名称> 恢复离线的screen作业。-R
先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。-s
指定建立新视窗时,所要执行的shell。-S
<作业名称> 指定screen作业的名称。-v
显示版本信息。-x
恢复之前离线的screen作业。-ls
或--list
显示目前所有的screen作业。-wipe
检查目前所有的screen作业,并删除已经无法使用的screen作业。快捷键
所有的快捷键都是先按一下Ctrl + A松开,这时快捷键生效再按其他按键
copy mode
,查看Screen
中的终端输出记录进入后它是
vi style keybindings
。对于拷贝文字,第一次空格设置开始标记,然后用h、j、k、
l、w移动光标,第二次空格完成拷贝。粘贴用]
nohup
如果程序在其他目录下则在命令前加入
cd 目录路径 &&
只输出错误日志
nohup python3 ./index.py >/dev/null 2>index.log &
不输出日志
nohup python3 ./index.py >/dev/null 2>&1 &
Linux的3种重定向
0
表示标准输入1
标准输出,在一般使用时,默认的是标准输出2
标准错误信息输出可以用来指定需要重定向的标准输入或输出。
将某个程序的错误信息输出到log文件中:
./index 2>index.log
。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。
另外,也可以实现0,1,2之间的重定向。
2>&1
:将错误信息重定向到标准输出。
关于/dev/null
文件
Linux下还有一个特殊的文件
/dev/null
,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。
这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null
。
setsid
setsid
就是set session id
的意思。表示该命令运行的进程是一个新的session
。因此其父进程不属于当前终端。
实际上setsid
运行的进程,其父进程id(ppid)为1(init进程的id)。
setsid python3 ./index.py >/dev/null 2>&1 &
语法
setsid(选项)(参数)
-c
, --ctty
将控制终端设置为当前控制终端-f
, --fork
总是fork
-w
, --wait
等待程序退出,并使用相同的返回supervisor
supervisor
是用Python
开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon
,并监控进程状态,异常退出时能自动重启。
常见配置如下
[program:程序名称]
user=root
command=/var/www/main
stdout_logfile=/var/log/gf-app-stdout.log
stderr_logfile=/var/log/gf-app-stderr.log
autostart=true
autorestart=true
使用步骤
sudo service supervisor start
启动supervisor
服务;/etc/supervisor/conf.d/程序名称.conf
, 内容如上;sudo supervisorctl
进入supervisor
管理终端;reload
重新读取配置文件并重启当前supoervisor
管理的所有进程;update
重新加载配置(默认不重启),随后使用start 程序名称
启动指定的应用程序;status
指令查看当前supervisor
管理的进程状态;首先进入需要搭建web服务器的目录,然后在输入下面的命令,端口号默认
8000
# python2.7
python -m SimpleHTTPServer port
# python3.x
python -m http.server port
# 服务开启后,地址协议类型加IP/目录下的文件:
wget host:port/file 就可以下载了
号称
croc
通过压缩和多路复用比wormhole
,rsync
,scp
更快(加速1.5
倍至4
倍)
【优点】简单方便,安全可靠;支持限速参数,不占资源,不会提高多少系统负荷
【缺点】不支持排除目录
【用法】scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。
把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
scp -P 22 -p /home/work/source.txt [email protected]:/home/work/
把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
scp -P 22 -p [email protected]:/home/work/source.txt /home/work/
把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
scp -P 22 -p [email protected]:/home/work/source.txt [email protected]:/home/work/
# 拷贝文件夹,加-r参数
scp -P 22 -p -r /home/work/sourcedir [email protected]:/home/work/
# 使用主机名
scp -P 22 -p -r /home/work/sourcedir [email protected]:/home/work/
# 显示详情,加-v参数
scp -P 22 -p -r -v /home/work/sourcedir [email protected]:/home/work/
将远程主机复制到本地
scp -P 22 -p [email protected]:/tmp/demo/f3.log /tmp/files/
遇到的问题
输入密码时提示:
Permission denied, please try again.
chmod -R 777 路径
PermitRootLogin
允许Root登录# 编辑sshd_config文件
vi /etc/ssh/sshd_config
# 搜索PermitRootLogin并修改为yes
/PermitRootLogin
# 重启ssh
/etc/init.d/sshd restart
【优点】功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。
【缺点】会耗系统资源,占用I/O
【用法】rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。
它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器
# 把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
rsync /home/work/source.txt [email protected]:/home/work/
# 把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
rsync [email protected]:/home/work/source.txt /home/work/
# 把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
rsync [email protected]:/home/work/source.txt [email protected]:/home/work/
# 拷贝文件夹,加-r参数
rsync -r /home/work/sourcedir [email protected]:/home/work/
# 使用主机名
rsync -r /home/work/sourcedir [email protected]:/home/work/
# 显示详情,加-v参数
rsync -r -v /home/work/sourcedir [email protected]:/home/work/
# 排除子目录,注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则匹配不上,就不会被排除掉。
rsync -r -v --exclude sourcedir/notinclude /home/work/sourcedir [email protected]:/home/work/
bench.sh
这个是秋水逸冰老大的脚本,用于测试网络下载及主机IO性能测试。是网络上普遍使用的脚本,界面很漂亮。
wget -qO- bench.sh | bash
91yun
这个来自91yun的脚本,主要测试的是网络ping值及路由。
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh \
&& bash test_91yun.sh s
主机运算性能测试
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh \
&& chmod +x unixbench.sh && unixbench.sh
服务器一键测试脚本
可以一键检测服务器基本性能,以及网络去程回程的速度。代码整合来自
SpeedTest
和OldKing
的SuperSpeed
。
# 中文版
wget https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh
# 英文版
wget https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench.sh && bash ZBench.sh
测试完之后,会在/root/下面生成一个 report.html 的文件。
Superspeed.sh
wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh \
&& chmod +x superspeed.sh && bash superspeed.sh
MTU经过网卡传输的数据包的最大传输单元,传输设备的MTU值不规范造成传输失败的情况
查看MTU值
cat /sys/class/net/eth0/mtu
临时更改MTU值
echo "1476" > /sys/class/net/eth0/mtu
# 或者
# ifconfig 网口名 mtu 数值
ifconfig eth0 mtu 1476
永久更改MTU值
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 在DEVICE=eth0下面加入
MTU=1476
# 启用IPv6地址的,修改IPv6 mtu的参数为
IPV6_MTU="1280"
重启网络接口
service network restart