自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 问答 (1)
  • 收藏
  • 关注

原创 Docker容器网络访问慢问题

一般可以从两个方面着手:1、更换软件源,使用国内的加速源,比如阿里源,清华源,网易源等等,由于对于不同的发行版系统(debian,ubuntu,redhat)源都不一样,请自行去源官网获取并更新到/etc/apt/source.list2、更新国内DNS,可以使网络访问时在DNS获得加速,比如在/etc/resolv.conf添加nameserver 223.5.5.5;也可以在容器运行时使用docker run命令的--dns选项进行更新;ps:更改必须在容器中或者容器镜像中。...

2020-07-02 10:52:10 5163

原创 begin to drop messages due to rate-limiting

对于syslog保存的日志会有很多重要信息,但是一旦打印的日志数量超过设置的阈值,就会丢掉(imuxsock[pid 48]: begin to drop messages due to rate-limiting);这是在调试时不愿看到的;可以通过以下方式解除这个限制:1. 编辑/etc/systemd/journald.conf文件 #RateLimitInterval=30s #RateLimitBurst=1000 改为(表示30s内打印不超过1000行,设置为0取消...

2020-06-17 15:35:17 3624

原创 LInux查看service启动顺序

使用命令systemd-analyze plot > boot.svg用浏览器打开boot.svg,分析启动顺序和启动时间出现如下图

2020-06-03 09:35:26 3121

原创 SONIC config_db.json文件的前生今世

config_db.json的使用系统启动时从config_db.json中读取数据并写入CONFIG_DB数据库,前提是config_db.json存在;保存当前系统的一些配置信息,通过config save命令;与CONFIG_DB存在联系,CONFIG_DB为系统实时配置数据库;sonic_installersonic_buildimage/src/sonic-utilitie...

2019-12-24 13:08:46 1463

原创 cJSON修改已存在item的string方法

CJSON API库中并未实现修改string的功能接口,因此手动编写一个,代码如下:static void vtysh_cjson_add_string_to_object(cJSON * const object, const char * const name, const char * const string){ cJSON *item; if (object ==...

2019-12-24 09:35:02 2192

原创 C++ 从新手到概览

lambda表达式 比如:[capture](parameters)->return-type{bady} example:[](int x, int y){return x+y;},[](int x, int y) -> int {int z = x+y; return z;} 引用和指针的区别: 引用在创建的时候必须初始化,指针可以在任何时候初始化; ...

2019-10-24 10:20:20 148

原创 golang入门学习步骤

golang的语法相对来说比较简单,各种语法糖也比较少,主要是遵循了go语言的设计哲学,少即是多;但少并不代表简单!如果有JAVA,C/C++语言基础,能够非常快的上手go语言;也即是入门比较快;官网是最好的学习资源,https://golang.org/这里分享一下我的学习过程:1. A Tour of Go (https://tour.golang.org/welcome)...

2019-09-02 15:25:42 431

原创 GO指南入门笔记

用了点时间入门golang,一些基础 package内以大写字母表示可导出的变量或函数,外部均以首字母大写引用; Go 的返回值可被命名,它们会被视作定义在函数顶部的变量。 返回值的名称应当具有一定的意义,它可以作为文档使用。 没有参数的 return 语句返回已命名的返回值。 函数外的每个语句都必须以关键字开始(var, func 等等),也就是不能使用 :=...

2019-08-30 09:53:43 187

转载 浅析Redis技术

文章目录Redis简介Redis的应用场景Redis的优势Redis的缺点Redis的并发竞争问题解决方案Redis与Memcached的区别Redis的数据淘汰策略Redis为何如此快速Redis为什么单线程还这么快Redis的五种数据类型StringHashListSetSort Set(Zset)Redis的持久化机制:RDB和AOFRedis常见性能问题和...

2019-08-15 16:03:25 238

原创 SONIC添加国内源加速构建Dockerfile镜像

SONIC是微软开源的关于白盒交换机的网络系统项目,详细说明信息可以查看SONIC官网。由于SONIC是国外的开源项目,使用到Docker技术构建编译镜像sonic-slave和所有的应用程序都使用Docker构建,通过容器运行在设备上;由于国内编译整个SONIC工程时间过于长,记录一些可以加速的方式;构建速度低最主要是因为在Dockerfile中的大量软件包的下载,而使用的又是国...

2019-08-08 13:56:13 2445

转载 解决国内访问github慢的问题

1.使用浏览器访问https://www.ipaddress.com/,分别获取github.com,github.global.ssl.fastly.net对应的ip本人获取的ip如下:192.30.253.112 github.com151.101.13.194 github.global.ssl.fastly.net2.修改host文件(本人使用switchHost工...

2019-08-05 09:51:19 718

原创 ubuntu编译错误:You are building kernel with non-retpoline compiler, please update your compiler

ubuntu16.04在编译某个内核模块时,突然提示错误:arch/x86/Makefile:245: *** You are building kernel with non-retpoline compiler, please update your compiler.. Stop.正如字面意思,需要升级编译器,比如gcc,当前ubuntu16.04上使用的是gcc4.9(非默认的gc...

2019-06-27 14:42:06 10431 1

转载 Ubuntu卸载protobuf并安装3.6.0版本的protobuf

1.卸载Ubuntu自带的protobuf;# sudo apt-get remove libprotobuf-dev# which protoc// 运行完“which protoc”会显示一个protoc的路径,如果没有显示则下面这条命令不必执行# rm /usr/local/bin/protoc// 具体路径以“which protoc”显示的为准到此,低版本的protobu...

2019-06-25 20:49:22 2505

原创 关于error: possibly undefined macro: AC_PROG_LIBTOOL问题解决

通过baidu或者google,大多数解决方案都是通过安装libtool,不同的平台有不同的安装方式; 比如ubuntu安装:sudo apt-get install libtool 大多数情况下都能解决问题;但是通过安装libtool也不能解决问题的,可能要尝试一下其他的解决方案:一般通过apt-get安装的软件都会在/usr目录下,既然提示无法找到AC_PROG_LIB...

2019-06-24 17:56:18 10362 1

原创 Macbook pro开盖唤醒时连不上wifi解决方案

这是一个总所周知的问题,多数情况是带着电脑到其他地方去后会概率性发生,点击WiFi图标没用,甚至会卡死。解决方案:打开命令终端Terminal并输入:sudo kill -9 `ps aux | grep -v grep | grep /usr/libexec/airportd | awk '{print $2}'`需要输入电脑密码,之后就可以顺利连上WiFi;还是希望Apple公...

2019-05-31 16:21:32 4501

原创 svn常用批量文件操作命令

# 恢复当前整个目录,记得有个‘.’,也可以跟上具体的目录svn revert --depth=infinity . # 回退svn add的所有文件sudo svn st | grep '^A' | awk '{print $2}' | xargs svnrevert --depth=infinity# 清除未跟踪的不需要的文件,类似于gitcleansudo svn...

2019-05-31 13:38:40 1026

原创 使用源文件和Makefile单独编译一个模块

将源文件和Makefile放入同一个目录下,最好新建一个。修改Makefile:#!/bin/bashobj-m := hello_world.o # your src fileKERNELDIR :=linux-4.9.76/ # your kernel pathPWD ?= $(shell pwd)all: make -C $(KERNELDIR) M...

2019-05-24 17:17:21 792

原创 解决ubuntu更新源apt-get update时提示NO_PUBKEY

例如:Err:7 http://mirrors.163.com/debian-security jessie/updates InReleaseThe following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9D6D8F6BC857C906 NO_PUBKEY ...

2019-05-23 11:09:35 1694

转载 ubuntu git clone 速度慢解决方法

1、编辑/etc/hostssudo vim /etc/hosts2、在hosts文件末尾添加如下格式:192.30.253.112 github.com151.101.44.249 github.global.ssl.fastly.net3、更新DNS缓存sudo /etc/init.d/networking restart原文:https://blog.csdn.net...

2019-05-23 10:08:40 5819

转载 ubuntu 16.04 LTS 降级安装gcc 4.8

由于gcc在5.x版本修改了ABI,导致新版本gcc编译的二进制文件放在老的环境下会报错,所以需要安装gcc4.8.5。4.8.5这个版本支持c++11。首先尝试下载gcc-4.8.5的源码编译安装,结果make时报错“libstdc++.so.6: : version `CXXABI_1.3.8' not found”。查了一下,不能用新版gcc来编译老版的gcc源码。其实,在ubunt...

2019-05-08 16:27:50 167

原创 Golang数组学习

1. 数组的长度也是数组类型的一部分,即定义了不同长度的数组,类型是不一样的;2. 当把一个数组赋值给另一个时,需要在做一次数组内存的拷贝操作,即修改赋值后的数组的元素值,不会影响被拷贝的数组,将数组作为函数参数传递时也不会改变;想要改变原数组,可以使用引用&;这样可以避免数组拷贝,当数组很巨大的时候,这种操作方式的效率是很高的3. 格式:var arrAge = [5]in...

2019-04-29 23:15:02 102

原创 Golang函数学习

1.变长参数使用...type的方式传递,例如func test(a int, strings ...string){},也可以直接传slice2.关键字defer,在函数执行返回之前一刻处理某些操作,比如资源释放;同一个函数体内多个defer被注册时,会类似于栈,先进后出弹出结果;3.内置函数名称 说明 close 用于管道通信 len、cap len ...

2019-04-18 23:22:38 174

转载 如何编写最佳的Dockerfile

转载于:https://blog.fundebug.com/2017/05/15/write-excellent-dockerfile/译者按:Dockerfile的语法非常简单,然而如何加快镜像构建速度,如何减少Docker镜像的大小却不是那么直观,需要积累实践经验。这篇博客可以帮助你快速掌握编写Dockerfile的技巧。原文:How to write excellent Do...

2019-04-12 14:26:36 120

转载 docker的/var/lib/docker目录迁移

由于早上到公司发现/var/lib/docker/overlay2 占用空间很大,决定做一下/var/lib/docker目录迁移工作1. 首先需要停止docker服务systemctl stop docker2. 通过命令df -h 先去看下磁盘大概的情况,找一个大的空间3. 创建docker的新目录,我这边找了data, 所以我这边的新目录地址是 /data/docker/lib...

2019-04-01 11:10:26 2112

原创 在Mac上使用SD烧写BananaPi-M2+ ubuntu镜像

1.首先使用SD Card Formatter进行格式化SD卡,选择Quick Format模式即可2.打开Terminal查看disk,找到SD卡所在的disk标号。比如disk3,完整路径为/dev/disk3 diskutil list3.取消挂载 diskutil unmountDisk + /dev/disk3,4.使用准备好的ubunt的img镜像烧录到S...

2019-03-17 15:50:07 613

原创 TCP协议的三次握手与四次握手

可以根据抓包来分析三次握手与四次握手:端口40286表示客户端client,端口9000表示服务端server三次握手:a.client向server发送SYN=1,ACK=0,Seq=x(此阶段不会有Ack),client状态为SYN_SNET;b.server收到client的SYN请求,发送SYN=1,ACK=1,Seq=y,Ack=x+1,server状态从LISTEN...

2019-03-13 10:42:07 161

转载 TCP/IP系列收发接口recv(),send(),readv(),writev(),recvmsg(),sendmsg(),sendto和recvfrom详解

1.recv()函数接收数据#include<sys/types.h>#include<sys/socket.h>ssize_t recv(int s,void* buf,size_t len,int flags);注:s:socket()返回的文件描述符.buf:套接字s中接收的数据放到buf缓冲区.len:接收buf的大小.flag:操作...

2019-03-12 10:57:42 1672

原创 memcpy和memmove函数原型及区别

1、memcpy函数原型void *memcpy(void *dst, const void * src, size_t count){ assert((dst != NULL) && (src != NULL)); char *tmp_dst = (char *)dst; chat *tmp_src = (char *)src; ...

2019-03-07 15:19:27 1008

转载 Select、Poll和Epoll

看到一篇写得很不错的博文,有必要收藏一下:原文:https://cloud.tencent.com/developer/article/1005481提到select、poll、epoll相信大家都耳熟能详了,三个都是IO多路复用的机制,可以监视多个描述符的读/写等事件,一旦某个描述符就绪(一般是读或者写事件发生了),就能够将发生的事件通知给关心的应用程序去处理该事件。本质上,select...

2019-03-06 17:46:36 4064 1

原创 一个简单的socket编程示例

1、服务端代码#include <sys/stat.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <stdl...

2019-03-05 18:02:02 620

原创 C语言生成随机数

1、关于C语言中有rand()函数来产生随机数,但是初始seed为1,这样做有一个问题,即会产生固定序列的数,比如单独调用rand()时会产生1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421…即使在其他进程中执行也会得到相同的序列...

2019-02-27 11:57:20 6996

原创 socket函数接口

1、int socket(int protofamily, int type, int protocol)(1)protofamily:即协议域,又称为协议族(family)。常用的协议族有,AF_INET(IPV4)、AF_INET6(IPV6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。协议族决定了socket的地址类型,在通信中必须采用对应...

2019-01-14 15:55:23 336

原创 openwrt系统移植Python

1、在openwrt系统上使用opkg的方式安装Python有关的库时,又时会遇到麻烦,还需要注意安装顺序;所以打算编译一个能直接在openwrt上跑的Python;Python源码下载:可以直接去官网下载https://www.python.org/downloads/,这里使用的Python2.7.7版本交叉编译工具:直接使用openwrt工程下的交叉编译工具链,如果没有最好能编译一下...

2019-01-11 11:34:38 2589

原创 Ubuntu16.04以上版本编译openwrt系统时提示找不到automake1-14

1、查看当前系统是否安装了automake,如果安装了则需要查看automake的版本,Ubuntu16.04版本默认是automake1-15;2、安装automake1-14    从官网下载http://ftp.gnu.org/gnu/automake,automake-1.14.1.tar.gz版本;    当然也可以使用命令:wget http://ftp.gnu.org/g...

2019-01-07 17:22:25 1859

转载 Mac突然连不上WiFi解决步骤

事件描述:上午用图书馆无线看电视过程中,莫名就网断了,开始以为是图书馆网问题,后来手机开热点也无法连接。去年刚买Mac时也出现过这种问题,后来换了主板,心慌还以为又要去修理了o(╯□╰)o 开始无用尝试部分: 1. 打开设置-网络-位置,更改为自动 2. 关机,立即同时按下command+option+R+P,听到三声后松手 解决步骤:移除网络配置和偏好文件 手动删除网络plist...

2019-01-05 17:37:36 28593 5

原创 makefile多级目录编译

添加类似于这种形式的规则:SRCS-y += $(wildcard $(SUBDIR_SRC)/*.c)其中SRCS-y表示编译的*.c源文件,SUBDIR_SRC为变量,表示需要编译的子目录,变量的赋值需要注意路径问题,wildcard关键字可以使在引用变量的时候通配符可以展开(变量的定义和函数引用时,通配符将失效);关于wildcard关键字更详细的说明,可以参考这篇博客:https:...

2019-01-02 11:02:17 1478

原创 linux编译提示-lcrypto失败,安装crypto库

手动安装crypto1、从官网下载源码包https://www.openssl.org/source/old/2、解压源码包到/usr目录下,当然也可以自己定义#sudo tar xzvf openssl-1.1.0e.tar.gz -C /usr/3、进入openssl-1.1.0e目录进行安装#cd /usr/openssl-1.1.0e/#sudo ./confi...

2018-12-20 14:48:01 8645

转载 Linux 套接字编程中的 5 个隐患

在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。本文识别那些隐患并向您显示如何避开它们。隐患 1.忽略返回状态第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分...

2018-12-20 14:25:44 199

转载 Linux下的I/O复用与epoll详解

前言      I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。为什么会是EPOLLselect的缺陷      高并发的核心解决方案是1个...

2018-12-19 14:46:59 125

原创 linux下Segmentation Fault生成coredump文件进行gdb调试

1、在linux下运行程序出现段错误,如果程序不是很大还比较好找,但是如果程序很大,会比较难以定位;在linux下可以支持生成coredump文件,使用gdb来解析Segmentation Fault时发生了什么,可以比较方便的查看程序崩溃的位置;2、一般linux系统都是默认关闭coredump文件生成,需要执行命令打开;实际上就是配置生成coredump的文件大小,系统默认为0,即不产生c...

2018-12-19 11:55:13 1632

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除