一、说明 先说一下,现在要安装Docker的话,一定要在CentOS7上安装Docker-ce。docker-io是比较老的版本,很多功能是没有的。 CentOS6默认也只支持到Docker1.7(但其实CentOS6是可以支持到Docker1.9的),后面的版本都需要安装在CentOS7上。 CentOS6也不能安装Docker0.7以下的版本了,比如Docker0.5/0.6,基本上是没办法使用的。因为最早Docker是在Ubuntu上的。
CentOS6安装Docker必须要升级内核到3.10及以上内核版本才行,内核还必须开启aufs模块。
我这里也就是单纯做个研究,就讲一下怎么在CentOS6上升级内核,然后再安装Docker1.7,再升级到1.9。
二、操作系统环境 # cat /etc/issue CentOS release 6.5 (Final) # uname -r 2.6.32-431.el6.x86_64 三、基础环境的准备 1、安装开发平台工具 #yum groupinstall "Development tools"
2、安装内核升级需要的依赖组件 #yum install device-mapper ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
开始学习Docker的时候,被它的版本搞的有点晕,然后就去研究了一下,查阅了大量的资料,终于搞清楚了这些版本的关系。
Docker 最初是由dotCloud公司创始人Solomon Hykes发起的一个公司内部项目。
在2013年底,由于Docker的火爆,dotCloud公司改名为Docker。
Docker最早是在Ubuntu 12.04上开发实现的; Red Hat则从 RHEL6.5 开始对Docker进行支持。
多种docker版本的混乱情况 先讲一讲为什么会有docker.io,docker-io这种的命名方式。 在Docker技术出现之前,Linux是已经有一个docker的工具的,但此docker非彼Docker。
这个docker是一个窗口停靠栏程序,就像苹果的Mac系统中的dock那个程序一样的一个工具。 这是它的官网http://icculus.org/openbox/2/docker/, 里面有介绍。
为了区分开来,我们以Docker和docker来区分。
Docker:指容器技术。 docker:指窗口停靠栏程序。
Docker技术出来后,因为原先Linux系统上已经有了docker这个工具,所以Docker软件名也不能跟人家重名啊,要不然没办法安装。 那个时候Docker的官网是docker.io,所以就在软件名称上加了io的后缀,在Ubuntu中就是docker.io,在CentOS中就是docker-io。
但是虽然软件名跟docker程序不一样了,但软件安装后的命令还是一样的,都是docker的这个命令,所以要安装Docker软件,要先看看有没有安装了那个停靠栏程序,有的话要先卸载才行。这个时期要安装Docker,就要用docker加io后缀的方式来安装。
Ubuntu中安装: apt-get install docker.io
CentOS中安装: yum install docker-io
Pipeline Pipeline Maven Integration pipeline中使用withMaven语法必须安装的插件
Credentials Binding 凭据插件
HTTP Request Plugin 代替curl,curl也可以调用凭据的
Image Tag Parameter 通过harbor获取镜像列表作为参数
simple theme jenkins的皮肤风格插件,可以美化jenkins页面
timestamps 时间插件,可以让日志显示时间
Email Extension 邮件通知
Publish Over SSH 使用ssh的方式与remote服务器进行交互
Subversion Plug-in 版本管理 SVN 的插件
以前一直使用ansible1.9的版本,最近升级到2.8版本了,发现有挺多问题的。
1、没有了-S -R参数 以前要使用su切换的话,使用-S -R就可以切换 #ansible test -S -R root -m shell -a 'ls'
升级到2.8之后,可以使用如下命令: 一是指定用户 #ansible test –become-user=root -m shell -a ’ls'\
一是指定方法 #ansible test –become-method=su -m shell -a ’ls'
不要用过多的if嵌套
重构前:
def project_version(request,group_name,branch_name,project_name): if branch_name and group_name and project_name: project_name_with_namespace = '%s/%s' %(group_name,project_name) project = gl.projects.get(project_name_with_namespace) if project: branches = [] branch = project.branches.list() if branch: branches = [] branch_name_find = '%s-' %(branch_name) for branch_name_in in branch: if (branch_name_in.
Print:不带格式的最基础的输出函数 a := "a" b := "b" fmt.Print(a) fmt.Print(b) 输出:ab
Println:带一个换行效果的输出函数 a := "a" b := "b" fmt.Println(a) fmt.Println(b) 输出: a\r\nb\r\n
Printf:支持占位符的输出函数 a := “a” b := “b” c := 1
go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。
go module有三个可选值:off、on、auto。 GO111MODULE=off 禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。 GO111MODULE=on 启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。 GO111MODULE=auto,项目根目录有go.mod文件时,开启模块支持。 使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。
查看自己的环境中,GO111MODULE的值。
# go env|grep GO111MODULE GO111MODULE="" 从Go1.13版本开始,为空就是on的状态。
如果想使用GO111MODULE=“off"的方法时,要先设置一下。 # go env -w GO111MODULE="off"
1、双引号“ ” 最常用的符号,常用来定义字符串。 双引号中定义的字符串支持转义字符,比如\n将输出换行。
package main import ( "fmt" ) func main() { a := "i" b := "在\\n" c := "这里" fmt.Println(a, b, c) } 输出:i 在\n 这里
2、单引号‘ ’ 单引号用来定义一个byte或者rune。
GOROOT #Golang安装目录
GOPATH #Golang项目目录
GOPATH: src #存放源码,开发项目存放在这个目录下 bin #编译后生成的可执行文件存放目录 pkg #第三方包目录
Go1.11版本之后官方推出go module版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。 所以后面开发项目文件就可以不用在GOPATH中的src中了。
package main import ( "fmt" ) func main() { fmt.Println(""Hello,world!) } package 包名:必须项。 如果是要编译执行的程序,那么一定要有一个main包和main函数。
import 库名:可选项。导入多个项包库就用()包起来。
func main():主函数。 如果是要编译执行的程序,那么一定要有一个main函数。 fmt.Println(“Hello,world!"):主程序内容,输出打印“Hello,world!”。
可以不编译运行程序: #go run 程序文件名
也可以编译成二进制文件后再运行: #go build 程序文件名
不同系统平台编译方式,可以跨平台使用。
编译到 linux 64bit $ GOOS=linux GOARCH=amd64 go build 或者可以使用 -o 选项指定生成二进制文件名字 $ GOOS=linux GOARCH=amd64 go build -o 生成二进制文件名
由于很多go库很多是国外网站,所以要么下载库会很慢,或者干脆访问不了。 Golang V1.13之后支持通过设置变量GOPROXY来修改代理地址,默认的代理服务器可以改成国内地址https://goproxy.cn
go env -w GOPROXY=“https://goproxy.cn,direct”
阿里云 https://mirrors.aliyun.com/goproxy/
nexus社区提供的 https://gonexus.dev ngoproxy.io https://goproxy.io\
基于athens的公共服务 https://athens.azurefd.net\
注意,这款软件不是sendmail,而是另外一个简单的命令行的邮件发送工具,生产上常用它来发送告警邮件。 这款软件的安装方式就是Linux下最简单的一种软件安装方法:直接下载赋权即可使用。
下载: 打开网站http://caspian.dotconf.net/menu/Software/SendEmail/
可以右键,复制链接地址,使用wget下载 #wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
解压:
#tar -zxvf sendEmail-v1.56.tar.gz #cd sendEmail-v1.56 把里面的主要程序复制到环境变量目录下,即可使用 #cp sendEmail /usr/bin/
这个工具都不需要赋权,因为本身已经设置好了执行权限。 然后就可以执行此命令了。 # sendEmail -help
命令说明:
-f xxx@itbing.cn 发件人邮箱 -s mailserver 如果能直接连接的机器,就可以直接填QQ邮箱之类的SMTP服务器地址 -u "我是邮件主题" 邮件的标题 -o message-content-type=html 邮件内容的格式,html表示它是html格式 -o message-charset=utf8 邮件内容编码 -xu xxx@itbing.
一、技术问答网站 https://stackoverflow.com https://www.linuxquestions.org
二、软件下载站: 2.1 Linux软件包下载 http://pkgs.org 各种开源的Linux(CentOS/Debian/Ubuntu)系统软件基本都有下载
2.2 rpm包软件的下载站 http://rpmfind.net/ http://rpm.pbone.net
2.3 主要是SUSE下的软件 https://software.opensuse.org/package/dstat 注意下拉查看显示其它版本
2.4 托管站,有各种开源软件 http://sourceforge.net https://github.com
三、软件源站 3.1 epel源 https://dl.fedoraproject.org/pub/epel/
3.2 OracleLinux系统源 http://public-yum.oracle.com/index.html
四、各系统下载站: 4.1 OracleLinux、Solaris、Oracle等下载: Oracle 软件交付云:http://edelivery.
平时在管理系统时,总有一些不人性化的地方,也有很多不方便管理的地方,我们可以通过修改一些系统配置来使我们管理系统更方便。
一、系统优化 1.1 命令实时记录 编辑/etc/bashrc,添加以下两句:
shopt -s histappend PROMPT_COMMAND='history -a' 1.2 给历史命令加上执行时间 编辑/etc/profile文件,加入如下一行: export HISTTIMEFORMAT='%F %T '
1.3 超时退出 编辑/etc/profile文件,加入如下一行: export TMOUT=3600
1.4 关闭selinux 编辑/etc/sysconfig/selinux SELINUX=disabled
1.5 sysstat vim /etc/sysconfig/sysstat HISTORY=31
一、必须要熟练掌握的操作 1.1 忘记root密码(进入单用户模式) 1.2 进急救模式 1.3 配置IP地址 1.4 配置主机名 1.5 扫描磁盘、磁盘分区、挂载分区 1.6 LVM卷组管理 1.7 分区的扩展和收缩 1.8 VNC设置 1.9 定时设置
二、详细配置步骤 2.1 忘记root密码 忘记root密码这种事情不会经常发生,但是是生产中必须要会的一个技能。 RHEL7之前的系统都比较简单,RHEL7之后有些变化。
我这里都以RHEL6系统来做配置,有些比较不一样的配置也会加上RHEL7。
进入单用户模式 RHEL6:
step1:开机加载后,按任意键,进入启动菜单栏 step2:进入后看菜单栏下面的文字说明。按字母e可以编辑启动前的菜单命令 step3:按e后,进入菜单编辑状态,按上下键,把光标移到第二行,再按e step4:在命令最后加上1或者字母single,都表示单用户,回车 step5:按字母b进行启动(注意,这里不是回车) step6:确定是否是单用户模式\r\n启动完全后,会直接进入系统,不会有输入密码等提示。 可以输入runlevel查看系统级别: #runlevel N S 或者 #runlevel n1 S 都说明现在的系统是单用户模式。 然后就可以使用passwd命令修改系统密码。
Linux的软件安装,一般都需要借助于命令或者需要提前设置好库环境才行,没有Windows安装软件那么方便快捷,这也是Linux在桌面领域一直输于Windows的一个原因之一。
一、Linux软件发布形式 Linux软件主要有三种发布形式:
1.1 源码发布 直接源码压缩打包方式,后缀一般为tar.gz,tar.bz2,zip这类文件,这种源码包Linux/Unix各大平台都能支持安装。
1.2 发行版本自定义打包方式 发行版本自己定义的软件打包方式,如RedHat的RPM包,debian的deb包。
1.3 编译好的软件 厂商自己编译打包好的软件,直接赋予执行权限就可以执行的软件包。
二、Linux软件安装方式 根据软件发布方式的不同,安装方法也不同,主要有四种方法:
2.1 源码编译安装 源码方式的软件包安装,需要gcc工具支持,Linux/Unix等系统平台都支持安装,但需要耗费比较长的时间进行编译。 源码安装一般都是四步: 2.1.1 解压压缩包 tar -zxvf *.tar.gz或者tar -zjvf *.tar.bz2或者unzip -o *.zip 2.1.2 配置参数 .
错误提示:
Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from position > file size; the first event 'mysql-bin.
错误提示:
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 180530 15:19:43 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 版本环境:
mysql> select version(); +------------+ | version() | +------------+ | 5.
同事发个消息给我,说大事不好了,他用zpool destroy命令把盘销毁了,但是现在突然发现里面还有东西,又想恢复。
我说别慌,冷静,我有一招,马上能恢复。
祭出神命令
#zpool import -D 可以查看哪些盘被销毁了,盘的状态怎么样,能不能恢复 pool: backup id: 5154272182900538157 state: ONLINE (DESTROYED) action: The pool can be imported using its name or numeric identifier. config: backup ONLINE c1t0d0 ONLINE c1t1d0 ONLINE 可以看到,state状态虽然是DESTROYED,但盘的状态都是online的
最近发现有台服务器中毒了,手动去查杀总是会有遗漏,最后安装了Linux下的杀毒软件clamav,使用起来还是不错的。
环境: Linux 6.8
版本: clamav-0.99.2.tar.gz
依赖关系: yum install pcre* zlib zlib-devel libssl-devel libssl openssl version 0.9.8 or higher
一.安装clamav 有两种方法安装:
1.yum安装方法 用epel源进行安装,但是需要系统能访问外网才行。 安装后会自动生成服务文件,启动服务后,会实时监控扫描连接,虽然安全性高了,不过可能会对服务器性能有影响。 可使用clamdsacn命令手动扫描系统,扫描速度快。
开始安装: 根据自己的系统版本下载相应的epel安装文件
#wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm #wget https://dl.