Manjaro 搭建 minikube 环境

在manjaro上搭建minikube测试环境 ...

2021-12-04 · 1 分钟 · 125 字 · Niuhe

tinygo点亮esp32

安装 Tinygo 在 Ubuntu 上安装开发环境,其他环境见参考 ...

2021-03-25 · 1 分钟 · 442 字 · Niuhe

golang限制函数同时调用次数

使用select语句和带缓冲区的channel来控制函数并发执行次数 package main import ( "fmt" "time" ) // cocurrency number of the do func const cnum = 3 func main() { var jobs = make(chan bool, cnum) for { for i := 0; i < 10; i++ { go frqLimit(do, jobs, i) } time.Sleep(4e9) } } func frqLimit(f func(), jobChan chan bool, i int) { select { case jobChan <- true: f() <-jobChan default: fmt.Println("job channel is full. pass ", i) } fmt.Println("jobs", i, "exit") } func do() { time.Sleep(3e9) fmt.Println("job done") }

2021-03-04 · 1 分钟 · 117 字 · Niuhe

Go语言和Makefile

Makefile基础 语法 # 目标 :依赖 # 根据依赖生成目标的命令 targets : prerequisites command 变量 Makefile 允许使用等号自定义变量。 txt = Hello World test: @echo $(txt) 上面代码中,变量 txt 等于 Hello World。调用时,变量需要放在 $( ) 之中。 调用Shell变量,需要在美元符号前,再加一个美元符号,这是因为Make命令会对美元符号转义。 test: @echo $$HOME 有时,变量的值可能指向另一个变量。 ...

2021-02-27 · 2 分钟 · 976 字 · Niuhe

Typescript基础

简介 Typescript 可以在代码编写写做类型检查,可以编写更健壮的代码。 安装 npm config set registry https://registry.npm.taobao.org sudo npm install -g typescript # 安装REPL sudo npm install -g tsun 基本概念 联合类型 表示取值是多种类型中的一种,当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法 let myFavoriteNumber: string | number; myFavoriteNumber = "seven"; myFavoriteNumber = 7; 接口 TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。 接口是一个类型,不是一个真正的值,它在编译结果中会被删除 ...

2021-01-29 · 8 分钟 · 3694 字 · Niuhe

docker基本使用

CheatSheet Docker 核心架构: 客户端 Client 服务器 Docker daemon 镜像 Image Registry 容器 Container 容器基本技术: cgroup 资源限额 namespace 资源隔离 Mount UTS IPC PID Network User Docker 采用 C/S 架构,客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 host 上,客户端也可以通过 socket 或者 REST API 和远程服务器通信。docker 客户端是和服务器通信的命令行工具。服务器负责创建、运行、监控容器,构建、存储镜像。镜像是一个只读模板,通过镜像可以创建容器。容器就是镜像运行的实例。Registry 是存放镜像的仓库。 ...

2021-01-23 · 3 分钟 · 1235 字 · Niuhe

sqlite3入门

命令行 # 从文件中执行sql语句 sqlite> .read cars.sql # 打开test.db数据库文件,如果文件不存在,创建 sqlite3 test.db # 元命令 # 显示可用表 .tables sqlite> .mode column sqlite> .headers on sqlite> SELECT * FROM Friends; Id Name Sex ---------- ---------- ---------- 1 Jane F 2 Thomas M 3 Franklin M 4 Elisabeth F 5 Mary F 6 Lucy F 7 Jack M 本示例说明如何在 sqlite 的列模式下格式化数据。 .headers命令也已用于显示列标题。 默认情况下,标题是隐藏的。 .width命令调整列的大小。 (此 meta 命令仅与列模式下的表有关。) sqlite> SELECT Name, Title FROM Authors NATURAL JOIN Books; Name Title ----------- ---------- Jane Austen Emma Leo Tolstoy War and Pe Joseph Hell Catch XII Charles Dic David Copp Joseph Hell Good as Go Leo Tolstoy Anna Karen 列宽不足以正确显示所有数据。 sqlite> .width 15 18 sqlite> SELECT Name, Title FROM Authors NATURAL JOIN Books; Name Title --------------- ------------------ Jane Austen Emma Leo Tolstoy War and Peace Joseph Heller Catch XII Charles Dickens David Copperfield Joseph Heller Good as Gold Leo Tolstoy Anna Karenia SQL 在这里,我们更改列宽。 第一列为 15 个字符,第二列为 18 个字符。 .show命令列出了各种设置。 其中包括输出模式,列表模式中使用的分隔符以及标题是否打开。 .schema命令显示表的结构。 它提供了 DDL SQL 来创建表。 sqlite> .schema Cars CREATE TABLE Cars(Id INTEGER PRIMARY KEY, Name TEXT, Price INTEGER); SQL .schema命令显示表的结构。 它提供了 DDL SQL 来创建表。 可以使用.prompt命令更改sqlite3的提示。 sqlite> .prompt "> " ". " > SELECT * FROM Cars . LIMIT 2; Id Name Price ---------- ---------- ---------- 1 Audi 52642 2 Mercedes 57127 > SQL 有两个提示。 一个是主提示,另一个是继续提示。 默认的主提示是sqlite&gt;,默认的继续提示是...&gt;。 我们可以从 Shell 执行 SQL 命令。 $ sqlite3 test.db "SELECT * FROM Cars;" 我们将使用.dump命令转储该表。 sqlite> .output cars2.sql sqlite> .dump Cars SQL 我们还可以将输出重定向到文件。 .output命令会将输出重定向到cars2.sql文件。 sqlite> .tables Authors Cars Friends Reservations Books Customers Orders sqlite> DROP TABLE Cars; sqlite> .tables Authors Customers Orders Books Friends Reservations sqlite> .read cars.sql sqlite> .tables Authors Cars Friends Reservations Books Customers Orders sqlite> SELECT * FROM Cars WHERE Id=1; Id Name Price ---------- ---------- ---------- 1 Audi 52642 在这里,我们得到 SELECT 语句的输出。 默认情况下,输出模式为 line,分隔符为|。 ...

2020-12-27 · 2 分钟 · 824 字 · Niuhe

awk基本使用

快捷键 awk 是 linux 上用于文本处理的脚本语言,你可以实现: 定义变量 使用字符串和算术运算符 使用控制流程和循环 生成格式化的输出 用法:awk [POSIX 或 GNU 风格选项] [--] '程序' 文件 ... POSIX 选项: GNU 长选项:(标准) -f 脚本文件 --file=脚本文件 -F fs --field-separator=fs -v var=val --assign=var=val 使用变量 $0 整行 $1 第一列字段 $2 第二列字段 $n 第 n 列字段 空格或者制表符是默认的列分隔符 可以通过-F 指定分隔符 ...

2020-12-05 · 1 分钟 · 479 字 · Niuhe

linux 101 Hackers 笔记

# 创建目录并进入 function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; } 查找文件 # 找到大于100M的文件 find / -type f -size +100M # 找到文件名中含有mail的文件/文件夹 find /etc -name "*mail*" # 找到修改时间在60天之前的文件 find . -mtime +60 # 找到修改时间在2天内的文件 find . -mtime -2 # 批量显示TS后缀且大于100M文件的详情 find . -type f -name '*.TS' -size +100M -exec ls -l {} \; # 批量删除TS后缀且大于100M的文件 find . -type f -name '*.TS' -size +100M -exec rm -f {} \; # 查找修改时间60天前的文件并打包 find /home/jsmith -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar` 输出重定向 # 标准输出重定向,只显示error信息 ./shell-script.sh > /dev/null # 标准错误信息重定向 ./shell-script.sh 2> /dev/null # 标准错误和输出都重定向 ./shell-script.sh > /dev/null 2>&1 # 将所有大写转化为小写 tr A-Z a-z < department.txt # 将所有小写转化为大写 tr a-z A-Z < employee.txt xargs 基本使用 # 删除log文件 find ~ -name '*.log' -print0 | xargs -0 rm -f find /etc -name "*.conf" | xargs ls -l cat url-list.txt | xargs wget -c find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz ls *.jpg | xargs -n1 -i cp {} /external-harddrive/directory 文件中截取列 # 以:分割,第一列 cut -d: -f 1 /etc/passwd # 以:分割,第1和第3列 cut -d: -f 1,3 /etc/passwd # 截取每行前边1-8个字符 cut -c 1-8 /etc/passwd 后台运行 nohup ./backup.sh & screen -S backup # 以特定间隔时间执行命令 watch df -h sed 基础 # thegeekstuff.txt # Instruction Guides 1. Linux Sysadmin, Linux Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Security (Firewall, Network, Online Security etc) 4. Storage in Linux 5. Productivity (Too many technologies to explore, not much time available) # Additional FAQS 6. Windows- Sysadmin, reboot etc. # 将第一个Linux替换为Linux-Unix sed 's/Linux/Linux-Unix/' thegeekstuff.txt # 将所有Linux替换为Linux-Unix sed 's/Linux/Linux-Unix/g' thegeekstuff.txt # 将第2个出现的Linux替换为Linux-Unix sed 's/Linux/Linux-Unix/2' thegeekstuff.txt # 输出修改行并写入指定的output文件 sed -n 's/Linux/Linux-Unix/gpw output' thegeekstuff.txt # 行正则匹配到-,则从-到行尾的字符被替换为空 sed '/\-/s/\-.*//g' thegeekstuff.txt # 删除每行的后3个字符 sed 's/...$//' thegeekstuff.txt # 直接修改源文件,去除#开头的注释 sed -e 's/#.*//' thegeekstuff.txt # 直接修改源文件,去除#开头的注释并去除空行 sed -e 's/#.*//;/^$/d' thegeekstuff.txt # 去除html的箭头标签 sed -e 's/<[^>]*>//g' # 同时显示多个文件的日志 tail -f /var/log/syslog -f /var/log/auth.log # 修改命令行提示符号 export PS1="\u@\h \w> " # 修改系统时间 date {mmddhhmiyyyy.ss} # Jan 31st 2009, 10:19 p.m, 53 seconds date 013122192009.53 date +%Y%m%d -s "20090131" date +%T -s "22:19:53" date -s "01/31/2009 22:19:53" # 显示时间 date +"%d-%m-%Y" 01-01-2009 date +"%d/%m/%Y" # 01/01/2009 date +"%A,%B %d %Y" # Thursday,January 01 2009 压缩和解压 zip var-log-files.zip /var/log/* zip -r var-log-dir.zip /var/log/ unzip var-log.zip unzip -v var-log.zip unzip -l var-log.zip unzip -t var-log.zip zip -P mysecurepwd var-log-protected.zip /var/log/* unzip var-log-protected.zip tar [options] [tar-archive-name] [other-file-names] # 压缩文件 tar cvf /tmp/my_home_directory.tar /home/jsmith # 显示压缩文件目录 tar tvf /tmp/my_home_directory.tar # 提取压缩文件 tar xvf /tmp/my_home_directory.tar # 指定提取目录 tar xvfz /tmp/my_home_directory.tar.gz -C /home/ramesh # gzip压缩文件(*.tar.gz) tar cvfz /tmp/my_home_directory.tar.gz /home/jsmith tar xvfz /tmp/my_home_directory.tar.gz tar tvfz /tmp/my_home_directory.tar.gz # bzip压缩文件(*.tar.bz2) tar cvfj /tmp/my_home_directory.tar.bz2 /home/jsmith tar xvfj /tmp/my_home_directory.tar.bz2 tar tvfj /tmp/my_home_directory.tar.bz2 命令行历史 # CTRL+r 查找匹配历史 # CTRL+p 上一条命令 history -c # 清除历史 # 忽略重复命令 export HISTCONTROL=ignoredups # 忽略以空格开头的命令 export HISTCONTROL=ignorespace # 不记录历史 export HISTSIZE=0 系统管理 # 创建swap分区 dd if=/dev/zero of=/home/swap-fs bs=1M count=512 ls -l /home/swap-fs mkswap /home/swap-fs swapon /home/swap-fs # edit in /etc/fstab /home/swap-fs swap swap defaults 0 0 # 生成ssh公钥 ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host # 定时任务管理 crontab -e {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} # run at 00:01am 1 0 * * * /root/bin/backup.sh # run at weekday 11:59pm 59 11 * * 1,2,3,4,5 /root/bin/backup.sh 59 11 * * 1-5 /root/bin/backup.sh # run every 5 minute */5 * * * * /root/bin/check-status.sh # run at 13:10pm on lst of every month 10 13 1 * * /root/bin/full-backup.sh # run at 11:00pm every weekday 0 23 * * 1-5 /root/bin/incremental-backup.sh # 同步文件 rsync options source destination # sync two directory in a local computer # -z enable compression # -v verbose # -r recursive # -a archive mode:will preserve symbolic link/permission/timestamp/owner/group rsync -zvr /var/opt/installation/inventory/ /root/temp # sync one file rsync -v /var/lib/rpm/Pubkeys /root/temp/ # sync to remote machine rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/ # sync from remote to local rsync -avz thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp # netcat命令nc # 从server1拷贝文件到server2 # 1. 在server2(102.168.200.27)上监听 nc -l 2222 > 1234.txt # 2. 在server1上开启传输 nc -w 1 102.168.200.27 2222 < abc.txt # 网络拷贝硬盘 # 1. server2(102.168.200.27)监听 nc -l -p 2222 | dd of=/dev/sda # 2. server1执行传输 dd if=/dev/sda | nc 102.168.200.27 2222 # nc端口扫描 # 扫描20-30端口 nc -v -w 1 192.168.200.29 -z 20-30 系统性能监控 ps axl ps aux ps axuf ps U niuhe netstat -tap netstat --route # 路由表 sar lsof

2020-12-05 · 3 分钟 · 1346 字 · Niuhe

vscode 快捷键和插件记录

快捷键 CTRL+B 打开/收起侧边栏目 CTRL+` 打开内置终端 CTRL+, 打开设置 CTRL+p 快速搜索并打开文件 CTRL+TAB 在已经打开的标签页中跳转 CTRL+\ 将标签页移动到右侧分割栏 CTRL+w 关闭标签页 CTRL+f 查找内容 CTRL+h 查找并替换 CTRL+SHIFT+f 全局搜索 CTRL+SHIFT+p 命令面板 CTRL+/ 注释/解除注释 CTRL+HOME/END 跳转到文件首/尾 CTRL+c/v 复制或剪切当前光标行/在当前光标行或下一行粘贴 CTRL+SHIFT+箭头上下箭头 多个光标用于列编辑 ALT+CLICK 获取多个编辑的光标 ...

2020-12-05 · 2 分钟 · 924 字 · Niuhe

openstack创建虚拟机

创建虚拟机 1、界面或命令行通过RESTful API向keystone获取认证信息。 2、keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。 3、界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。 ...

2020-10-31 · 15 分钟 · 7418 字 · Niuhe

Openstack命令行基础

不同命令的功能有重复和交集 Openstack篇 Openstack每个组件都有其命令,openstack社区为了方便使用,将所有组件的命令进行了统一,以openstack开头 # 查看所有openstack服务 openstack service list # 查看openstack服务状态 openstack-service status # 重启本节点所有openstack服务 openstack-service restart # openstack服务URL列表查询 # endpoint表示一个服务在哪可被访问的URL和端口号列表 openstack endpoint list # 查询domain,domain是一个keystone验证实体 openstack domain list # 查看nova服务列表 openstack compute service list # 查看网络服务列表 openstack network agent list # ======================================================= # 项目(租户)列表查询 openstack project list # 查看租户详情 openstack project show <project_id/name> # 创建租户 openstack project create --description 'Admin Project' <租户名> # 删除租户 openstack project delete <租户id/name> # 禁用启用租户 openstack project set <租户id/name> --disable/enable # 更新租户名称 openstack project set <租户id/name> --name <new name> # ======================================================== # 查看某一个项目下所有用户user openstack user list --project=<project_id/name> # 查看所有用户 openstack user list # 查看用户详情 openstack user show <user_name/id> # 创建用户 openstack user create --domain <域名> --project <项目/租户名> --password <密码> <用户名> # 删除用户 openstack user delete <用户名> # 禁用启用某一个用户 openstack user set <user_name/id> --disable/enable # 更新用户名称 openstack user set <user_name/id> --name <new name> # 查询某一用户与项目、角色的关系 openstack role assignment list --user=用户名 # ======================================================= # 角色查询 # 一个角色包括一组权利和特权,角色访问控制提供预定义的用户可操作列表,如开启或停止虚机,重置密码等。在身份验证服务和计算服务中均被支持。 openstack role list # 角色详情查询 opensatck role show <role_name/id> # 创建角色 openstack role create <role_name> # 分配角色,将项目和用户加入到角色中 openstack role add --user <用户名> --project <项目名> <角色名> # 删除角色 openstack role remove --user <用户名> --project <项目名> <角色名> # ====================================================== # 列出所有的镜像 openstack image list # 查看某一个镜像信息 openstack image show <image_id> # 设置镜像标签 openstack image set --tag <标签名> <image_name/id> # 创建镜像 # 格式化类型包括raw、qcow2、vmdk等 openstack image create <镜像名> --file <镜像文件名> --disk-format <格式化类型> --container-format bare --public # openstack image create “test1” --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public # 查看安全组信息 openstack group list # 查看flavor类型 openstack flavor list # 查询网络信息 openstack network list # 查看端口信息(虚拟网络) openstack port list # 创建虚拟机 openstack server create --image <image_id/name> --flavor <flavor_id/name> --nic net-id=<net_id> <instance_name> # 创建虚拟机帮助 openstack server create --help # ================================================== # 查看openstack环境主机列表 openstack host list # 查看某个host主机资源情况 openstack host show <host_name> # 查看虚拟机列表 openstack server list # 查看虚拟机详情 openstack server show <instance_id> # 虚拟机暂停 openstack server pause <instance_id> # 虚拟机从暂停中恢复 openstack server unpause <instance_id> # 虚拟机重启 openstack server reboot <instance_id> # 虚拟机删除 openstack server delete <instance_id> Nova篇 # 查看openstack版本 nova-manage version # 查看命令帮助信息 nova help <command> # 返回nova服务所在的host信息 # 在电子通信领域,host和node的区别在于,host是向外提供某种服务,而node只需要是连接到网络的设备 # 运行有nova服务的主机被认为是host nova host-list # 查看host具体资源信息 nova host-describe <host_name> # 查看nova服务和状态 nova service-list # ======================================= # 查看计算节点 nova hypervisor-list # 查看计算节点详情 nova hypervisor-show <hypervisor ID> # 查看计算节点上的虚拟机 nova hypervisor-servers <hypervisor ID> # ====================================== # 列出所有flavor(模板) nova flavor-list # 创建flavor,模板ID建议为auto nova flavor-create --is-public true <模板名称> <模板ID> <内存(MB)> <磁盘(GB)> <VCPUS> # 显示flavro详情 nova flavor-show <模板ID> # 删除flavor nova flavor-delet <模板ID> # ======================================= # 查看虚拟机列表 nova list nova list --all-te # 查看虚拟机详情 nova show <instance_id> # 查看虚拟机控制台日志 nova console-log <instance_id> # 查看密钥对列表 nova keypair-list # 查看镜像列表 nova image-list # 查看浮动ip列表 nova floating-ip-list # 查看安全组列表 nova secgroup-list # ===================================== # 查看浮动ip列表 nova-manage floating list # 数据库同步 nova-manage db sync nova-manage api_db sync nova-manage placement sync # 查看数据库版本 nova-manage db version # nova组件更新检查 nova-status upgrade check # ==================================== nova suspend <instance_id> nova resume <instance_id> nova start <instance_id> nova stop <instance_id> nova delete <instance_id> nova reboot <instance_id> # 硬重启 nova reboot --hard <instance_id> # 进入救援模式 nova rescue <instance_id> # 使用指定镜像进入救援模式 nova rescue --image <image_id> <instance_id> # 重启虚拟机,由救援模式进入正常模式 nova unrescue <instance_id> # 重置虚拟机状态 nova reset-state <instance_id> # 指定节点热迁移 nova live-migration <instance_id> <compute_node_id> # 调整虚拟机资源 nova resize <instance_id> <flavor_id> --poll # 确认调整虚拟机资源 nova resize-confirm <instance_id> # 资源调整失败回滚 nova resize-revert <instance_id> # 通过快照创建一个镜像 nova image-create <instance_id> <image_name> # =================================== # 从镜像创建虚拟机 nova boot --image cirros --flavor 1 --nic net-name=net1 vm1 # 从卷(块设备)创建虚拟机 # 1. 从镜像生成volumn cinder create --image-id <image_id> --name <volume_name> <size_in_gb> # 2. 从volumn创建虚拟机 nova boot --flavor <flavor_id> source=volumn,,id=卷ID,dest=volume,shutdown=preserve,bootindex=0 虚拟机名称 # ================================== # 挂载云硬盘 nova volume-attach <instance_id> <volume_name> /dev/sdb # 卸载云硬盘 nova volume-detach <instance_id> <volume_name> Neutron篇 # 列出当前租户网络 neutron net-list # 列出所有租户网络 neutron net-list --all-te # 查看网络详情 neutron net-show <net_id> # 删除一个网络 neutron net-delete <net_id> # 查看所有agent neutron agent-list # 查看所有租户拥有的port # port是虚拟网口,是路由器和虚拟机挂接网络的着附点 neutron port-list # 查看port详情 neutron port-show <port_id> # 查看安全组 neutron security-group-rule-list Glance篇 # 列出全部镜像 glance image-list # 查看image具体信息 glance show <image ID> # 上传镜像 glance image-create --visibility public --container-format docker/bare --disk-format raw/qcow2 --name xxx --file /root/xxx --progress glance image-create --name "CentOS7.0" --disk-format qcow2 --container-format bare --progress </opt/images/centos_7-x86_64_xiandian.qcow2 Cinder篇 # 显示存储列表 cinder list # 显示存储卷类型列表 cinder type-list # 创建存储卷 cinder create --display-name VOLNAME SIZE(SIZE的单位为GB) Ceilmeter篇 # 查看监控资源 ceilometer meter-list #查看告警列表 ceilometer alarm-list # 删除一个告警 ceilometer alarm-delete -a ALARM_ID # 获取某一个告警信息 ceilometer alarm-state-get ALARM_ID 服务状态 systemctl list-units | grep openstack systemctl status httpd.service # 查看Apache的http服务日志 cd /etc/httpd/logs tail -f <日志文件> 参考 Openstack常用命令 ...

2020-10-23 · 5 分钟 · 2299 字 · Niuhe

Virsh命令和虚拟机

环境搭建和准备 # 查看cpu是否支持硬件虚拟化 grep -E -c "vmx|svm" /proc/cpuinfo sudo apt install -y qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst # if centos # yum install -y kvm virt-manager libvirt libvirt-python python-virtinst virt-install qemu-kvm lsmod | grep -i kvm sudo systemctl status libvirtd.service # 如果服务未启动 sudo systemctl enable libvirtd --now # 配置网桥使得libvirt可以从外部访问 cat /etc/netplan/00-installer-config.yaml # 可选,GUI管理工具 sudo apt-get install virt-manager python-spice-client-gtk 下载调试镜像: 从官方地址下载cirros镜像,用来调试虚拟机,用户名和密码如下 user:cirros pass:cubswin:) # 不同版本密码不同 通常将cirros镜像放置到/var/lib/libvirt/boot路径下 ...

2020-10-22 · 9 分钟 · 4338 字 · Niuhe

tcpdump的基本使用【译】

Tcpdump是一个linux命令行的抓包工具,可以抓取TCP/IP和其他数据包,如UDP,ARP,ICMP,可以使用过滤器过滤出想要的包。 抓取特定接口上的包 当使用tcpdump不加任何参数,将分析所有接口上的数据包。 sudo tcpdump 可以使用-i选项指定特定接口 可以使用-c选项限制数据包的个数 sudo tcpdump -i wlp2s0 -c 10 抓取特定主机的数据包 可以使用-host选项指定和特定主机相关的数据包 ...

2020-10-19 · 3 分钟 · 1360 字 · Niuhe

Linux性能测试

简介 Linux上对系统进行性能检测的工具非常多,本文介绍一些常用工具的使用 性能观测工具 ▪ 首先学习的Basic Tool有如下: uptime、top(htop)、mpstat、isstat、vmstat、free、ping、nicstat、dstat。 ▪ 高级的命令如下: sar、netstat、pidstat、strace、tcpdump、blktrace、iotop、slabtop、sysctl、/proc。 ...

2020-10-17 · 13 分钟 · 6027 字 · Niuhe