CentOS 6.5调整分区大小

调整硬盘分区大小

想增加root空间,减少home空间。

1. 查看硬盘使用情况。

[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   48G   45G   17M 100% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home   50G  180M   47G   1% /home

2. 调整home分区大小

[root@npm ~]# umount /home
[root@npm ~]# e2fsck -f /dev/mapper/VolGroup-lv_home
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mapper/VolGroup-lv_home: 11/3303104 files (0.0% non-contiguous), 253351/13207552 blocks
[root@npm ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to 524288 (4k) blocks.
Begin pass 2 (max = 32768)
正在重定位块            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 404)
正在扫描inode表          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/VolGroup-lv_home is now 524288 blocks long.

[root@npm ~]# mount /home
[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   48G   45G   17M 100% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home

3. 释放空间

[root@npm ~]# lvreduce -L 2G /dev/mapper/VolGroup-lv_home
  WARNING: Reducing active and open logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_home? [y/n]: y
  Reducing logical volume lv_home to 2.00 GiB
  Logical volume lv_home successfully resized
[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   48G   45G   16M 100% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home
[root@npm ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               99.51 GiB
  PE Size               4.00 MiB
  Total PE              25474
  Alloc PE / Size       13088 / 51.12 GiB
  Free  PE / Size       12386 / 48.38 GiB
  VG UUID               ILLwIo-pQ0o-2Ayw-fYcP-QhcW-A1id-Sozp1f

4. 增加空余空间到root

[root@npm ~]#  lvextend -L +48.38G /dev/mapper/VolGroup-lv_root
  Rounding size to boundary between physical extents: 48.38 GiB
  Extending logical volume lv_root to 96.54 GiB
  Logical volume lv_root successfully resized
[root@npm ~]# resize2fs -p /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 7
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 25307136 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 25307136 blocks long.

[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   96G   45G   46G  50% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home

CentOS 7 yum快速安装MongoDB

MongoDB是深受广大开源爱好者支持和研究的NoSQL数据库之一,它基于灵活的JSON文档方式,非常适合敏捷开发,其高可用功能强大,支持水平扩展等众多关键特性。一如其简约而不简单的MySQL一样,安装起来也非常方便,支持源码编译安装,rpm安装以及yum安装等众多方式。本文主要讲述在CentOS 7下yum方式快速安装mongodb。

一、安装环境及配置yum

    # more /etc/redhat-release 
    CentOS Linux release 7.2.1511 (Core)

    # vi /etc/yum.repos.d/mongodb-org-3.2.repo 
    [mongodb-org-3.2]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

二、安装MongoDB

    # yum -y install mongodb-org     
    Loaded plugins: fastestmirror, langpacks                     
    base                                                              | 3.6 kB  00:00:00     
    epel/x86_64/metalink                                              | 5.2 kB  00:00:00     
    extras                                                            | 3.4 kB  00:00:00     
    mongodb-org-3.2                                                   | 2.5 kB  00:00:00     
    updates                                                           | 3.4 kB  00:00:00     
    mongodb-org-3.2/7/primary_db                                      |  50 kB  00:00:03     
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * epel: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package mongodb-org.x86_64 0:3.2.10-1.el7 will be installed
    --> Processing Dependency: mongodb-org-tools = 3.2.10 for package: mongodb-org-3.2.10-1.el7.x86_64
    --> Processing Dependency: mongodb-org-shell = 3.2.10 for package: mongodb-org-3.2.10-1.el7.x86_64
    --> Processing Dependency: mongodb-org-server = 3.2.10 for package: mongodb-org-3.2.10-1.el7.x86_64
    --> Processing Dependency: mongodb-org-mongos = 3.2.10 for package: mongodb-org-3.2.10-1.el7.x86_64
    --> Running transaction check
    ---> Package mongodb-org-mongos.x86_64 0:3.2.10-1.el7 will be installed
    ---> Package mongodb-org-server.x86_64 0:3.2.10-1.el7 will be installed
    ---> Package mongodb-org-shell.x86_64 0:3.2.10-1.el7 will be installed
    ---> Package mongodb-org-tools.x86_64 0:3.2.10-1.el7 will be installed
    --> Finished Dependency Resolution

    Dependencies Resolved

    ===================================================================================================
     Package                                      Arch     Version             Repository         Size
    ===================================================================================================
    Installing:
     mongodb-org                                  x86_64   3.2.10-1.el7        mongodb-org-3.2   5.8 k
    Installing for dependencies:
     mongodb-org-mongos                           x86_64   3.2.10-1.el7        mongodb-org-3.2   5.6 M
     mongodb-org-server                           x86_64   3.2.10-1.el7        mongodb-org-3.2    12 M
     mongodb-org-shell                            x86_64   3.2.10-1.el7        mongodb-org-3.2   6.7 M
     mongodb-org-tools                            x86_64   3.2.10-1.el7        mongodb-org-3.2    41 M

    Transaction Summary
    ===================================================================================================
    Install  1 Package (+4 Dependent packages)

    Total download size: 65 M
    Installed size: 201 M
    Downloading packages:
    warning: /var/cache/yum/x86_64/7/mongodb-org-3.2/packages/mongodb-org-3.2.10-1.el7.x86_64.rpm: 
            Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY  ]  
    Public key for mongodb-org-3.2.10-1.el7.x86_64.rpm is not installed
    (1/5): mongodb-org-3.2.10-1.el7.x86_64.rpm                                  | 5.8 kB  00:00:04     
    (2/5): mongodb-org-server-3.2.10-1.el7.x86_64.rpm                           |  12 MB  00:00:11     
    (3/5): mongodb-org-shell-3.2.10-1.el7.x86_64.rpm                            | 6.7 MB  00:00:06     
    (4/5): mongodb-org-tools-3.2.10-1.el7.x86_64.rpm                            |  41 MB  00:00:36     
    (5/5): mongodb-org-mongos-3.2.10-1.el7.x86_64.rpm                           | 5.6 MB  00:03:28     
    ---------------------------------------------------------------------------------------------------
    Total                                                              322 kB/s |  65 MB  00:03:28     
    Retrieving key from https://www.mongodb.org/static/pgp/server-3.2.asc
    Importing GPG key 0xEA312927:
     Userid     : "MongoDB 3.2 Release Signing Key <[email protected]>"
     Fingerprint: 42f3 e95a 2c4f 0827 9c49 60ad d68f a50f ea31 2927
     From       : https://www.mongodb.org/static/pgp/server-3.2.asc
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : mongodb-org-tools-3.2.10-1.el7.x86_64                                    1/5 
      Installing : mongodb-org-mongos-3.2.10-1.el7.x86_64                                   2/5 
      Installing : mongodb-org-shell-3.2.10-1.el7.x86_64                                    3/5 
      Installing : mongodb-org-server-3.2.10-1.el7.x86_64                                   4/5 
      Installing : mongodb-org-3.2.10-1.el7.x86_64                                          5/5 
      Verifying  : mongodb-org-server-3.2.10-1.el7.x86_64                                   1/5 
      Verifying  : mongodb-org-3.2.10-1.el7.x86_64                                          2/5 
      Verifying  : mongodb-org-shell-3.2.10-1.el7.x86_64                                    3/5 
      Verifying  : mongodb-org-mongos-3.2.10-1.el7.x86_64                                   4/5 
      Verifying  : mongodb-org-tools-3.2.10-1.el7.x86_64                                    5/5 

    Installed:
      mongodb-org.x86_64 0:3.2.10-1.el7                                                                                                                                                                           

    Dependency Installed:
      mongodb-org-mongos.x86_64 0:3.2.10-1.el7      #Author : Leshami      
      mongodb-org-server.x86_64 0:3.2.10-1.el7      #Blog   : http://blog.csdn.net/leshami
      mongodb-org-shell.x86_64 0:3.2.10-1.el7           
      mongodb-org-tools.x86_64 0:3.2.10-1.el7          

    Complete!

三、验证安装结果

    # rpm -qa |grep mongodb
    mongodb-org-3.2.10-1.el7.x86_64
    mongodb-org-mongos-3.2.10-1.el7.x86_64
    mongodb-org-shell-3.2.10-1.el7.x86_64
    mongodb-org-server-3.2.10-1.el7.x86_64
    mongodb-org-tools-3.2.10-1.el7.x86_64

    # rpm -ql mongodb-org-server
    /etc/init.d/mongod
    /etc/mongod.conf
    /etc/sysconfig/mongod
    /usr/bin/mongod
    /usr/share/doc/mongodb-org-server-3.2.10
    /usr/share/doc/mongodb-org-server-3.2.10/GNU-AGPL-3.0
    /usr/share/doc/mongodb-org-server-3.2.10/MPL-2
    /usr/share/doc/mongodb-org-server-3.2.10/README
    /usr/share/doc/mongodb-org-server-3.2.10/THIRD-PARTY-NOTICES
    /usr/share/man/man1/mongod.1
    /var/lib/mongo
    /var/log/mongodb
    /var/log/mongodb/mongod.log
    /var/run/mongodb

    [root@localhost ~]# /etc/init.d/mongod start
    Starting mongod (via systemctl):                           [  OK  ]
    [root@localhost ~]# netstat -nltp|grep mongo
    tcp        0      0 127.0.0.1:27017      0.0.0.0:*   LISTEN      89958/mongod

    # mongo
    MongoDB shell version: 3.2.10
    connecting to: test
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
            http://docs.mongodb.org/
    Questions? Try the support group
            http://groups.google.com/group/mongodb-user
    &gt; db.version()
    3.2.10

未分类

CentOS 7配置并更换为本地或网络yum源

一、目的

为了在没网的情况下或体验更快的速度及更好的体验。毕竟自带yum源在国外。(本例用的是阿里yum源,其他的也可以)

二、yum机制简介

引用百度百科及一些个人见解

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

三、搭建本地源(利用ISO镜像)

1、拷贝iso镜像文件解压指/media/cdrom文件夹

shou cp -r /xxxx/CentOSxxx/* /media/cdrom

2、配置/etc/yum.repos.d/CentOS-Media.repo

    [c6-media]
    name=CentOS-$releasever - Media
    baseurl=file:///media/CentOS/   #镜像文件路径
            file:///media/cdrom/
            file:///media/cdrecorder/
    gpgcheck=1    #标志开启key验证,开启必须要有gpgkey文件,也可以选择关闭
    enabled=1       #标志开启此yum源
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3、重命名默认的网络源CentOS-Base.repo,避免冲突。

$ sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

4、重置yum

$ yum clean all   #清理yum缓存
$ yum list    #显示yum列表

三、更换网络源

1、备份系统自带yum源

$ sudo mv /etv/yum.repos.d/CentOS-Base.repo /etv/yum.repos.d/CentOS-Base.repo.bk

目的:其他yum源(这里是阿里yum源)出错时,可以恢复系统自带yum源

2、下载阿里yum源到/etc/yum.repos.d

  • 切换路径 $ cd /etc/yum.repos.d
  • 下载 $ sudo wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo

备注:

  • 阿里yum源:http://mirrors.aliyun.com/repo/
  • 163(网易)yum源: http://mirrors.163.com/.help/
  • 中科大的Linux安装镜像源:http://centos.ustc.edu.cn/
  • 搜狐的Linux安装镜像源:http://mirrors.sohu.com/
  • 北京首都在线科技:http://mirrors.yun-idc.com/

3、更改阿里yum源为系统默认yum源

$ sudo mv CentOS-7.repo CentOS-Base.repo

4、清除yum机制的本地缓存

$ sudo yum clean all   #一股脑全部清除
$ sudo yum  list

目的:避免更换源后出现HTTP ERORR 404-Not Found Trying othermirror的bao报错

5、生成yum机制的本地缓存

$ sudo yum makecache

yum makecache目的:将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度。

Vi/Vim全局替换基本语法

在vim编辑中,编辑器使用指定的字符模式对文件中的每行进行检查,使用新字符串来替换模式。
全局替换使用命令 :g(global全局)和:s(switch替换)。

单个字符替换:

:s/old/new/

未分类

这将把光标所在行old的第一次出现修改为new。

/(斜杠)是该条命令不同部分之间的分隔符(当斜杆为该行的最后一个字符时,可不写)

单个字符多个替换:

:s/old/new/g

未分类

把当前行old的每次出现改为new,而不只是该行的第一个old。

:s命令允许替换串后面带有选项,上面语法中的g代表全局(g选项影响一行中的每个模式,不要把它与影响文件中所有行的:g命令混淆)

通过在:s命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把50行到100行的old的每次出现都改为new:

:50,100 s/old/new/g 

下面的命令把整个文件中的old的每次出现都改为new:

:1,$ s/old/new/g

确认替换:

使用搜索替换命令有时候会出错,而得到不想要的结果。在替换命令尾部加上c (confirm用于确认),在替换每个old前都会提示并确认:

:1,30 s/old/new/gc

未分类

将会出现提示replace with hehe (y/n/a/q/l/^E/^Y)?
y替换,n不替换,a替换所有,q放弃,l替换第一个并进入插入模式,^E和^Y是提示你用Ctrl+e或Ctrl+y来滚动屏幕的。

上下文相关替换:

除了直接使用一个单词(或短语)替换另一个,还有稍微复杂的全局替换语法。这些语法可以对一个模式进行搜索,一旦找到含有模式的行,就可以使用不同与模式的串进行替换,我们把这种替换叫做上下文相关替换。

语法格式:

:g/pattern/s/old/new/g

未分类

将会把包含pattern的行中,把所有old替换为new

第一个g表示是在文件的所有行上执行的命令,模式pattern识别要发生替换的行。在那些包含模式pattern的行上,将把old替换(s)为new,最后的g表示在该行上进行全部替换。

如果用来进行搜索的模式与想要修改的模式相同,就不必重复:

:g/string/s//new/g 等价于 :g/string/s/string/new/g

注意:

:g/string/s//new/g 也等价于 :% s/string/new/g

配置VIM支持Nginx .conf文件语法高亮显示

我们在编辑配置 Nginx 的配置文件(.conf)时,由于他没有高亮的功能,但是 Nginx 官方是支持这个功能的;要想在编辑配置 Nginx 配置文件(.conf)的时候高亮语法以降低配置的错误发生率,我们只需要使用 Nginx 官方的语法高亮文件就可以了。

系统管理

手动修改

下载Nginx配置文件的语法文件:nginx.vim

wget http://www.vim.org/scripts/download_script.php?src_id=14376 -O nginx.vim

将文件复制到 /usr/share/vim/vim74/syntax 目录(也可以是 单用户目录 ~/.vim/syntax/)。

修改 vim /usr/share/vim/vim74/filetype.vim 增加

au BufRead,BufNewFile /etc/nginx/,/usr/local/nginx/conf/ if &ft == ” | setfiletype nginx | endif

注意根据自己安装的nginx目录,修改上面的命令

自动化脚本

#!/bin/bash
mkdir -p ~/.vim/syntax &amp;&amp; cd ~/.vim/syntax
wget http://www.vim.org/scripts/download_script.php?src_id=14376 -O nginx.vim &gt;/dev/null
echo "au BufRead,BufNewFile /usr/local/nginx/conf/* set ft=nginx" &gt; ~/.vim/filetype.vim

其中路径/usr/local/nginx/conf/*为你的nginx.conf文件路径

将上述代码保存为.sh文件后在bash里运行即可。

centos 6.5 ansible的安装与使用方法

实验环境:

centos 6.5 x64

安装epel 源:

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

安装ansible 服务端:

yum install ansible -y

在配置文件中添加主机

vim /etc/ansible/hosts

[testhost]
192.168.28.70

测试所有连接的客户端:

[root@localhost ~]# ansible all -a 'who'
192.168.28.70 | SUCCESS | rc=0 &gt;&gt;
root pts/0 2017-07-11 04:13 (192.168.28.186)
root pts/2 2017-07-11 04:18 (192.168.28.186)
root pts/1 2017-07-11 04:45 (192.168.28.186)

测试一个简单的 ping:

[root@localhost ~]# ansible all -m ping
192.168.28.70 | SUCCESS =&gt; {
 "changed": false, 
 "ping": "pong"

远程执行命令

[root@localhost ~]# ansible testhost -m command -a 'w'

未分类

注意:”-m” 指定模块名,”-a” 指定相应命令,这样就可以批量执行命令。这里的 testhost 为之前自定义的主机组名。当然我们也可以直接写一个 ip,针对某一台机器来执行命令。如下:

未分类

远程执行shell脚本

1、创建一个shell脚本

[root@localhost ~]# cat /tmp/test.sh 
#!/bin/bash
 echo `date` &gt; /tmp/ansible_shell.log

2、把脚本分发到远程主机

[root@localhost ~]# ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"
192.168.28.70 | SUCCESS =&gt; {
 "changed": true, 
 "checksum": "032e736ac2c71a85c09cbef25190e404aa7eb7e8", 
 "dest": "/tmp/test.sh", 
 "gid": 0, 
 "group": "root", 
 "md5sum": "874449f8733ff8aaece2a5859b0d4446", 
 "mode": "0755", 
 "owner": "root", 
 "secontext": "unconfined_u:object_r:admin_home_t:s0", 
 "size": 53, 
 "src": "/root/.ansible/tmp/ansible-tmp-1500430217.04-122496835634479/source", 
 "state": "file", 
 "uid": 0
}

3、执行脚本

[root@localhost ~]# ansible testhost -m shell -a "/tmp/test.sh"
192.168.28.70 | SUCCESS | rc=0 &gt;&gt;

拷贝文件

[root@localhost ~]# ansible testhost -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansibletet.txt owner=root group=root mode=0644" 
192.168.28.70 | SUCCESS =&gt; {
 "changed": true, 
 "checksum": "bd6fddebe99a0a92d02e9e198d34c406186edc87", 
 "dest": "/tmp/ansibletet.txt", 
 "gid": 0, 
 "group": "root", 
 "md5sum": "80f6c7c933dd1ca1c626ebffa3ddb8ed", 
 "mode": "0644", 
 "owner": "root", 
 "secontext": "unconfined_u:object_r:admin_home_t:s0", 
 "size": 18066, 
 "src": "/root/.ansible/tmp/ansible-tmp-1500430393.64-228538002701013/source", 
 "state": "file", 
 "uid": 0
}

拷贝目录

[root@localhost ~]# ansible testhost -m copy -a "src=/etc/ansible/ dest=/tmp/ansibletest owner=root group=root mode=0644"
192.168.28.70 | SUCCESS =&gt; {
 "changed": true, 
 "dest": "/tmp/ansibletest/", 
 "src": "/etc/ansible"
}

添加计划任务

[root@localhost ~]# ansible testhost -m cron -a "name='test_cron' job='/bin/touch /tmp/test.txt' hour='1,5,10' weekday=1"
192.168.28.70 | SUCCESS =&gt; {
 "changed": true, 
 "envs": [], 
 "jobs": [
 "test_cron"
 ]
}

去远程主机上查看

[root@bogon ~]# crontab -l
#Ansible: test_cron
* 1,5,10 * * 1 /bin/touch /tmp/test.txt

删除任务计划

若要删除该cron ,只需要加一个字段 state=absent

[root@localhost etc]# ansible testhost -m cron -a "name='test_cron' state=absent"
192.168.28.70 | SUCCESS =&gt; {
 "changed": true, 
 "envs": [], 
 "jobs": []
}

Yum 安装

我们来安装一个httpd服务

[root@localhost etc]# ansible testhost -m yum -a "name=httpd"

服务管理

开启 httpd服务,并关闭开机启动

[root@localhost etc]# ansible testhost -m service -a "name=httpd state=started enabled=no"

列出ansible 所有模块

[root@localhost etc]# ansible-doc -l

查看指定模块的用法

[root@localhost etc]# ansible-doc cron

CentOS 7 rpm安装mysql 5.7.18

最近一直使用MySQL,mysql-Linux下安装写了使用其他方式安装mysql,这次主要采用rpm格式来安装,试了一下感觉这种安装模式比较简单。

卸载MariaDB

centos7默认安装MariaDB而不是mysql,可能MariaDB数据库和mysql会冲突,故先卸载MariaDB。

1、查看已安装MariaDB相关的包

rpm -qa | grep mariadb

2、查看已安装的MariaDB相关yum包,包需根据rpm命令的结果判断

yum list mariadb-libs

3、移除已安装的MariaDB相关的yum包,包名需根据yum list命令结果判断,此步骤需要root权限

yum remove mariadb-libs

下载mysql rpm包

下面是官网的下载地址:
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

使用rpm安装mysql

下面步骤需要root权限,各个包之间有依赖关系,故rpm命令必须按顺序执行。

mkdir mysql
tar -xv -f mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql
cd mysql
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm

出现的问题:

1、libaio.so.1()(64bit) is needed by MySQL-server

解决方案:

安装libaio-0.3.107-10.el6.x86_64.rpm

①下载地址:

http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm

②执行:

rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

2、net-tools is needed

解决方案:

yum install net-tools

3、perl(Getopt::Long) 被 mysql-community-server-5.7.18-1.el7.x86_64 需要

解决方案:

yum install perl

安装成功后,删除安装文件和临时文件,也可以不删除。

登录mysql,修改初始密码

以下步骤需要root权限。
1、由于一开始并不知道密码,先修改配置文件/etc/my.cnf,让mysql跳过登录时的权限验证。加入一行:

vi /etc.my.cnf
skip-grant-tables 

未分类

2、更改MySQL数据库目录的所属用户及其所属组,然后启动mysql

chown -R mysql:mysql /var/lib/mysql/ 
systemctl start mysqld.service //启动mysql数据库服务 

3、登录

mysql -uroot -p

4、修改密码

use mysql; 
update user set authentication_string =password('你自己的密码') where host ='localhost' and user='mysql';
quit;

5、使用密码重新登录

mysql -uroot -p

docker安装部署gitlab 配置使用部外nginx

一、docker安装gitlab镜像

1,镜像信息

https://hub.docker.com/r/gitlab/gitlab-ce/

docker pull gitlab/gitlab-ce

2,启动镜像

sudo docker run --detach 
 --hostname git.tmy.com 
 --publish 8929:80 --publish 2289:22 
 --name gitlab 
 --restart always 
 --volume /data/gitlab/config:/etc/gitlab 
 --volume /data/gitlab/logs:/var/log/gitlab 
 --volume /data/gitlab/data:/var/opt/gitlab 
 gitlab/gitlab-ce:latest

文档地址:https://docs.gitlab.com/omnibus/docker/#run-the-image

3,访问本机安装的gitlab

127.0.0.1:8929 端口号为步骤2中设置的端口号。

此处不知何种原因,启动了需要等待几分钟才可以访问,知道的大神可以六个言交流下。

可以访问之后继续往下走。

二、配置使用外部的nginx服务器

1,关闭gitlab内部的nginx服务

官方文档地址:https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server

启动的时候映射出来的目录
vim /data/gitlab/config/gitlab.rb 

在配置文件最末尾加上配置
nginx['enable'] = false 
web_server['external_users'] = ['www-data']

使配置生效
docker exec gitlab gitlab-ctl reconfigure

2,配置本机上的nginx

新nginx虚拟机配置文件,我的虚拟机配置文件在/usr/local/nginx/conf/vhost

vim /usr/local/nginx/conf/vhost/git.tmy.com.conf

下载官方的配置文件

https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/nginx

配置文件有http 和 https两个版本,这里我选择了http第一个

## GitLab 8.3+
##
## Lines starting with two hashes (##) are comments with information.
## Lines starting with one hash (#) are configuration parameters that can be uncommented.
##
##################################
## CONTRIBUTING ##
##################################
##
## If you change this file in a Merge Request, please also create
## a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
##
###################################
## configuration ##
###################################
##
## See installation.md#using-https for additional HTTPS configuration details.

upstream gitlab-workhorse {
 server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}

## Normal HTTP host
server {
 ## Either remove "default_server" from the listen line below,
 ## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab
 ## to be served if you visit any address that your server responds to, eg.
 ## the ip address of the server (http://x.x.x.x/)n 0.0.0.0:80 default_server;
 listen 0.0.0.0:80 default_server;
 listen [::]:80 default_server;
 server_name YOUR_SERVER_FQDN; ## Replace this with something like gitlab.example.com
 server_tokens off; ## Don't show the nginx version number, a security best practice
 root /opt/gitlab/embedded/service/gitlab-rails/public;

 ## See app/controllers/application_controller.rb for headers set

 ## Individual nginx logs for this GitLab vhost
 access_log /var/log/nginx/gitlab_access.log;
 error_log /var/log/nginx/gitlab_error.log;

 location / {
 client_max_body_size 0;
 gzip off;

 ## https://github.com/gitlabhq/gitlabhq/issues/694
 ## Some requests take more than 30 seconds.
 proxy_read_timeout 300;
 proxy_connect_timeout 300;
 proxy_redirect off;

 proxy_http_version 1.1;

 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;

 proxy_pass http://gitlab-workhorse;
 }
}

将配置文件写入刚才创建的虚拟机文件配置文件中。修改

#找到
upstream gitlab-workhorse {
 server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
#修改为
upstream gitlab-workhorse {
 server unix:/data/gitlab/data/gitlab-workhorse/socket;
}
#找到
server_name YOUR_SERVER_FQDN;
#修改为
server_name git.tmy.com 【域名是你自己配置好的域名】
#找到
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
#改为
access_log /data/wwwlogs/gitlab_access.log;
error_log/data/wwwlogs/gitlab_error.log;
#上边是日志文件而已,改称你自己的就行

配置完成后检查nginx -t 是否正常,没问题重新载入配置即可。

三、修改目录权限

chown -R www:www /data/gitlab/data/gitlab-workhorse/

修改完成后访问git.tmy.com 即可进入gitlab的web界面了

Linux行匹配命令grep介绍

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep搜索的是包含某一模式的行,而不是完全匹配某一模式的行。

常用选项

  • -v 反转查找

  • -i 忽略字符大小写

  • -q 不显示任何信息

  • -E 使用扩展正则表达式

  • -R 在目录中递归搜索

  • -F 搜索固定字符串而不是搜索匹配表达式的模式

正则表达式

规定一些特殊语法表示字符类、数量限定符和位置限定符,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式(Regular Expression)

grep的正则表达式 有Basic和Extended两种规范,egrep相当于grep -E,表示才用Extended正则表达式语法。我们学习Extended正则表达式语法。

字符类

系统管理

数量限定符

系统管理

位置限定符

系统管理

其他特殊字符

系统管理

以上介绍的是grep正则表达式的Extended规范,Basic规范也有这些语法,只是字符 ? + { } | ( ) 应
解释为普通字符,要表示上述特殊含义则需要加 转义。如果用grep而不是egrep,并且不加 -E
选项,则应该遵照 Basic 规范来写正则表达式。

CentOS 6 GitLab的安装配置与使用方法

前言

  • GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
  • 它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
  • 团队成员可以利用内置的简单聊天程序(Wall)进行交流。
  • 它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

Git的家族成员

  • Git:是一种版本控制系统,是一个命令,是一种工具。
  • Gitlib:是用于实现Git功能的开发库。
  • Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
  • GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。

Gitlab的服务构成

  • Nginx:静态web服务器。
  • gitlab-shell:用于处理Git命令和修改authorized keys列表。
  • gitlab-workhorse:轻量级的反向代理服务器。
  • logrotate:日志文件管理工具。
  • postgresql:数据库。
  • redis:缓存数据库。
  • sidekiq:用于在后台执行队列任务(异步执行)。
  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。

GitLab工作流程

未分类

GitLab Shell

  • GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表。
  • 当通过SSH访问GitLab Server时,GitLab Shell会:
  • 限制执行预定义好的Git命令(git push, git pull, git annex)
  • 调用GitLab Rails API 检查权限
  • 执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
  • 执行你请求的动作 处理GitLab的post-receive动作
  • 处理自定义的post-receive动作
  • 当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码。
  • 如果你是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作;
  • 如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:
  1. 调用GitLab Rails API 检查权限
  2. 执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
  3. 执行你请求的动作
  4. 处理GitLab的post-receive动作
  5. 处理自定义的post-receive动作

GitLab Workhorse

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

Gitlab环境部署

ECS配置要求:内存2G以上

方法一:镜像部署

镜像名称:GitLab代码管理(Centos 64位 | GitLab) | 镜像帮助文档

进入镜像详情页面,单击立即购买,按提示步骤购买 ECS 实例。

购买完成之后,登录”ECS 管理控制台”,在左边导航栏里,单击”实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在”IP 地址”列获取该实例的公网 IP 地址。

注意:镜像部署好后默认是禁止远端访问的,所以直接访问ECS服务器的公网IP是不能访问到GitLab的登录界面的,请先运行/alidata目录下的gitlab_opennet.sh脚本,开启远程访问,然后再通过浏览器访问公网IP来访问GitLab的主页。

方法二:手动部署:

1、配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo

复制以下内容:

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key

未分类

2、更新本地yum缓存

sudo yum makecache

未分类

3、安装GitLab社区版

sudo yum intall gitlab-ce        #自动安装最新版
sudo yum install gitlab-ce-x.x.x    #安装指定版本

未分类

GitLab常用命令:

sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop        # 停止所有 gitlab 组件;
sudo gitlab-ctl restart        # 重启所有 gitlab 组件;
sudo gitlab-ctl status        # 查看服务状态;
sudo gitlab-ctl reconfigure        # 启动服务;
sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
sudo gitlab-ctl tail        # 查看日志;

GitLab使用

登录GitLab

1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。

未分类

2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

未分类

未分类

创建Project

1、安装Git工具linux:安装Git,使用自带的源安装。

yum install git

未分类

2、生成密钥文件

使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。

未分类

未分类

3.在GitLab的主页中新建一个Project

未分类

未分类

4.添加ssh key导入步骤2中生成的密钥文件内容:

未分类

未分类

ssh key添加完成:

未分类

项目地址,该地址在进行clone操作时需要用到:

未分类

简单配置

1、配置使用Git仓库的人员姓名

git config --global user.name "上海驻云"    

2、配置使用Git仓库的人员email,填写自己的公司邮箱

git config --global user.email "[email protected]" 

3、克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件

git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git

未分类

上传文件

1、进入到项目目录

cd test/ 

2、创建需要上传到GitLab中的目标文件

echo “test” >  /root/test.sh

3、将目标文件或者目录拷贝到项目目录下

cp /root/test.sh ./    

未分类

4、将test.sh文件加入到索引中

git add test.sh 

5、将test.sh提交到本地仓库

git commit -m “test.sh”

6、将文件同步到GitLab服务器上

git push -u origin master 

未分类

7、在网页中查看上传的test.sh文件已经同步到GitLab中

未分类