自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 helm install Error: no available release name found的解决方法

sudo kubectl --namespace=kube-system edit deployment/tiller-deploy 将automountServiceAccountToken修改为:true 保存退出即可另外参考《每天5分钟玩转 Kubernetes》,可以尝试下面的方法kubectl create serviceaccount --namespace kub...

2018-05-11 16:41:55 3657

转载 Cgroup - Linux 的 IO 资源隔离

转载自 https://www.v2ex.com/t/251497 前辈的博客写得很赞,学习到很多Linux 的 IO 隔离跟内存管理那部分复杂度类似, IO 的资源隔离要讲清楚也是比较麻烦的。这部分内容都是这样,配置起来简单,但是要理解清楚确没那么简单。这次是跟 Linux 内核的 IO 实现有关系。对于 IO 的速度限制,实现思路跟 CPU 和内存都不一样。 CPU 是针对进程占用时间的...

2018-04-26 19:52:34 4740

转载 UNIX环境高级编程学习环境搭建---apue.h

本菜刚刚学习UNIX下高级编程,无奈搭建本书编程环境时遇到不少问题。幸好网上有各种大神的解决办法让我最终解决了问题。在这里感谢为LINUX开源操作系统奋斗的大神。不过话说回来,网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说,有些过时,因为很对针对linux的make文件已经改变了很多。话不多说,下面就来看看具体的搭建过程:(本人用的操作系统是ubuntu 14.04LTS)

2018-04-12 10:11:57 1119

转载 自旋锁与互斥锁的区别

POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:(1

2018-01-19 10:07:36 481

转载 脚本的四种执行方法

方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:代码如下:cd /data/shell./hello.sh./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容

2018-01-18 11:12:50 46726

转载 /etc/bashrc和/etc/profile

导读 在一般的 linux 或者 unix 系统中, 都可以通过编辑 bashrc 和 profile来设置用户的工作环境, 很多文章对于 profile 和 bashrc 也都有使用, 但究竟每个文件都有什么作用和该如何使用呢? 首先我们来看系统中的这些文件, 一般的系统可能会有/etc/profile/etc/bashrc~/.bashrc~/.profile而如果系统是 u

2018-01-18 10:38:03 442

转载 Python中__repr__和__str__区别

看下面的例子就明白了class Test(object): def __init__(self, value='hello, world!'): self.data = value>>> t = Test()>>> t0x7fa91c307190>>>> print t0x7fa91c307190># 看到了么?上面打印类对象并不是很友好,显示的是对象的

2018-01-16 20:33:33 244

转载 linux中使用信号--sigwait()和pthread_sigmask()

1. sigwait函数:sigwait等一个或者多个指定信号发生。    它所做的工作只有两个:第一,监听被阻塞的信号;第二,如果所监听的信号产生了,则将其从未决队列中移出来(这里实时信号和非实时信号又有区别,体现在取出的顺序等,具体自己取网上查,这里不再详述)。sigwait并不改变信号掩码的阻塞与非阻塞状态。    在POSIX标准中,当进程收到信号时,如果是多线程的情况,我们是无法确

2018-01-15 15:13:57 945

转载 linux 多线程信号总结

linux 多线程信号总结1. 在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。也就是说,信号会随机发个该进程的一个线程。2 signal函数BSD/Linux的实现并不在信号处理函数调用时,恢复信号的处理为默认,而是在信号处理时阻塞此信号,直到信号处理函数返回。其他实现可能在调用

2018-01-15 15:12:22 708

原创 linux 信号 为什么使用sigaction而非signal

所有希望能用相同方式处理信号的多次出现,最好用sigaction.信号只出现并处理一次,可以用signal.signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,每次在进程响应处理信号时,随即将信号处理函数恢复为默认处理方式.所以如果想多次相同方式处理某个信号,通常的做法是,在响应函数开始,再次调用signal设置,如下图: int sig_int(); //My si

2018-01-15 13:50:57 602

转载 Linux进程间通信——使用信号

一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可

2018-01-15 13:49:19 184

转载 进程间通信(IPC)介绍

进程间通信(IPC)介绍 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Lin

2018-01-15 10:57:35 197

转载 Https流程和原理

1- Https流程和原理大家都知道要使用https,需要在网站的服务器上配置https证书(一般是nginx,或者tomcat),证书可以使用自己生成,也可以向专门的https证书提供商进行购买。这两种的区别是自己生成的证书是不被浏览器信任的,所以当访问的时候回提示不安全的网站,需要点击信任之后才能继续访问自己生成的而购买的https证书会提示安全D

2018-01-14 09:26:24 2077

转载 Linux查看内存命令及其对命令显示的解释

我们通过Linux查看内存free命令查看机器空闲内存时,会发现free的值很小。下面我们就来了解学习下Linux查看内存的命令和对这些命令的解释,这样大家更能够深刻理解我们的Linux查看内存命令在Linux下查看内存我们一般用free命令:[root@scs-2 tmp]# freetotal       used       free     shared    buffer

2018-01-13 11:08:18 13055

转载 golang语言os.Stat()用法及功能

package mainimport ( "fmt" "os")func main() { fileinfo, err := os.Stat(`C:\Users\Administrator\Desktop\UninstallTool.zip`) if err != nil { panic(err) } fmt.Println(file

2017-12-17 20:45:14 13556

转载 urfave/cli go语言的命令行库

命令行应用通常很小,程序猿们也不喜欢为它编写注释。所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了。 https://github.com/urfave/cli 这个项目因此而生。 安装:go get github.com/urfave/cli 以下的例子均来自官网:package mainimport ( "os" "github.com/urfave/cli")func m

2017-12-17 10:17:46 7524

转载 golang中os/exec包用法

exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o.func LookPath(file string) (string, error) //LookPath在环境变量中查找科执行二进制文件,如果file中包含一个斜杠,则直接根据绝对路径或者相对本目录的相对路径去查找[html] view plain co

2017-12-15 10:57:14 5622

转载 正向代理与反向代理

正向代理管理员让一部分计算机访问网络,可以更好地监控网络的数据传输; 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容 代理服务器去取回来,然后返回给我 从网站的角度,只在代理服务器来取内容的时候有一次记录 有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不

2017-12-04 22:39:43 245

转载 Golang 常用字符串处理方法

package mainimport ( "fmt" "strings" //"unicode/utf8")func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法") fmt.Println(strings.Contains("seafood", "foo"))

2017-11-23 18:43:41 1710

转载 go语言string、int、int64互相转换

#string到int int,err:=strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, 64) #int到string string:=strconv.Itoa(int) #int64到string string:=strconv.FormatInt(int64,

2017-11-22 12:44:55 1616

原创 go 字符串的拼接

对于string:直接+=进行拼接var s string str := "123"str += "123123"str += "qwerqwe"利用Sprintfvar s string = "12312sf"s = fmt.Sprintf("%s %s",s,"123123")对于[]string利用strings.Join进行拼接s := "1231"strings.Joi

2017-11-20 13:49:08 68654

原创 python sort sorted key cmp

sort和sorted的区别sort() 是list的内置方法,只有list有 sorted()方法是Python内置的,可以对所有可迭代的序列排序生成新的序列,只要可迭代就行,返回的都是一个listls = list([5, 2, 3, 1, 4])new_ls = sorted(ls)print(new_ls)ls.sort()#直接更改了原先ls内的排列顺序sortedsorted(i

2017-11-20 11:11:39 1481

原创 Python中的@property和property函数

property

2017-11-08 19:40:39 1681

原创 python _、__和__xx__的区别

“_”单下划线Python中不存在真正的私有方法。为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。在使用property时,经常出现这个问题:class BaseForm(StrAndUnicode): ... def _get_errors(self): "Returns an ErrorD

2017-11-08 19:26:52 978

原创 中缀表达式 转换为 前缀 后缀表达式

中缀转后缀表达式考虑表达式 A + B * C。A B C * +是等价的后缀表达式。 我们已经注意到,操作数 A,B 和 C 保持在它们的相对位置。只有操作符改变位置。再看中缀表达式中的运算符。从左到右出现的第一个运算符为 +。 然而,在后缀表达式中,+ 在结束位置,因为下一个运算符 * 的优先级高于加法。 原始表达式中的运算符的顺序在生成的后缀表达式中相反。当我们处理表达式时,操作符必须保存在某

2017-11-06 20:50:51 3377 1

原创 ip 命令 docker相关的网络命令 network namespace相关命令总结

网络命名空间:可以详细参考这篇: http://blog.csdn.net/guizaijianchic/article/details/78444638 包含ip netns的使用 ip netns add net1 新建一个网络空间常用指令:ip linkip link addip link add type veth #添加veth pair ,创建之后要记得up ip link set

2017-11-04 18:41:35 525

转载 network namespace 介绍和ip netns 命令的使用

network container linuxlinux 网络虚拟化: network namespace 简介By cizixs February 10, 2017 CommentTweetLike+1network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候

2017-11-04 17:09:15 5421

原创 kubernetes minikube kubectl的安装 绝对良心

捣鼓了整整两天的kubernetes的安装,试了很多的方案,换了很多系统,试了很多方案,但是经常出现 还有跑起来了,但是显示的一直是ContainerCreating,其实本质原因还是下面这种: 镜像拉不下来这么些种种错误,但是归结起来就是:GFW的锅,基本都是网络问题,真的没有什么话说,所做的种种都是为了从各种层面去绕开墙的封锁不要使用运行在虚拟机上的linux去安装kubernete

2017-11-02 10:55:41 12041 1

原创 linux 备份和快照 timeshift的安装和使用

使用虚拟机的时候可以很方便的使用快照,但是如果直接使用的是linux的主机的话,应该如何进行备份呢,毕竟如果操作有问题,重新安装系统是很麻烦的事情。根据网上的推荐,找到了一款叫timeshift的软件,地址:https://github.com/teejee2008/timeshift,这里面有详细的安装说明安装对于Ubuntu and Linux Mint: 执行sudo apt-add-rep

2017-11-02 09:58:09 5759 1

原创 Cannot add PPA: 'ppa:'. Please check that the PPA name or format is correct

使用了网络代理的情况下,出现了这样的问题,首先使用了网络上提到的两种方法: 发生这种错误主要有两种原因。一种是您电脑中的CA证书已经损坏,或者是您的网络设置了一个代理重新安装一下CA证书: sudo apt-get install --reinstall ca-certificates如果上面的命令不起作用,可能是网络使用了一个代理设置。要略过代理设置,使用sudo命令并加上参数E,就像下面

2017-11-02 09:49:46 6432 2

转载 Murano实践之package分析

1、murano package概述murano package 中包含Classes、Resources、UI三个文件夹和manifest.yaml、logo.png两个文件,其中manifest.yaml是必须包含的文件。package解析的入口是manifest.yaml,概括的定义了这个package是什么和有什么样的用途;Classes中定义了这个package中各种运行的方

2017-10-25 20:49:42 594

转载 Murano之:集成docker

murano是如何集成docker?提供了怎样的接口以辅助用户快捷的编写package呢?这个得利于murano自身的架构,murano的package提供了自定义lib的功能,即根据自己的需要,根据murano package的定义规则,自己拓展一个即可。关于murano package的解析请移步murano实践之package分析DockerInterfacesLibraryDock

2017-10-25 20:47:53 202

转载 使用murano的PL语言

声明: 本博客欢迎转载,但请保留原作者信息! 作者:柯晓东 团队:华为杭州OpenStack团队最近在用Murano来部署应用,关于Murano包及PL语言的使用,这里总结一下,便于后来者。先说Murano包,典型的Murano包如下图所示。含有UI的称为Application,它能继承library,但是不能被其他Application继承了。library不含UI,一般是平台提供

2017-10-25 20:44:12 468

原创 创建docker自定义网桥 自定义网桥的配置 docker0

首先停止服务 sudo service docker stop down掉原先的网桥 ifconfig docker0 down 删除原先的网桥 sudo brctl delbr docker0添加网桥 sudo brctl addbr bridge0 配置网桥的ip地址 sudo ip addr add 192.168.3.1/24 dev bridge0 启动网桥 ifcon

2017-10-24 21:47:32 3206

转载 docker save load export import的区别

exportexport命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器ID: sudo docker ps -a 接着执行导出: sudo docker export <CONTAINER ID> > /home/export.tarsaveSave命令用于持久化镜像(不是容器)。所以,我们就需要通过以下方法得到镜像名称: sudo docker images 接着执

2017-10-23 23:18:37 15127 2

转载 ubuntu下安装docker-compose

curl安装(官网方法)安装 https://docs.docker.com/compose/install/#install-composesudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/do

2017-10-12 20:22:47 647

原创 docker容器运行不退出的方法

问题描述执行docker run image-id bash后,容器退出解决方法docker容器的主线程(dockfile中CMD执行的命令)结束,容器会退出有以下几种解决方法:使主进程无法结束 docker run -d centos /bin/bash -c "while true;do echo hello docker;sleep 1;done"使用交互式启动 docker run -

2017-10-11 20:38:49 27146

原创 iperf参数与丢包率的关系

带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。经常使用的参数例子如下: iperf -b 1m -u -c 10.0.0.1 -t 0.1 -l 30影响丢包率的因素:带宽值:使用iperf生成并发送数据,在数据包长度固定的情况下(L默认为1470字节),带宽越大,每秒钟发送的数据包越多。当链路延时较大时,每秒发送的数据包数量太多时会造成比较大的丢包率 包的长度:-l 可以设置

2017-10-11 16:02:15 9058

原创 Ubuntu 14.04 更换源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份sudo vim /etc/apt/sources.list #修改将如下内容覆盖原先的内容deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb http://mir

2017-10-11 12:15:24 2331

原创 Failed to fetch bzip2:/var/lib/apt/lists/partial/ Hash sum mismatch E: Some index files fail

进入ubuntu software center 选择software sources 在其他软件中将对勾勾掉; 关闭窗口; sudo apt-get update即可

2017-10-11 10:37:41 498

空空如也

空空如也

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

TA关注的人

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