• 工作中涉及运维知识点的汇总


    对工作中常见运维知识点的一个简单汇总

    0)设置阿里云pip源,加速pip更新速度

    mkdir ~/.pip #创建文件夹
    vi ~/.pip/pip.conf #添加如下内容
    [global]
    index-url=https://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com

    如果是临时使用,在使用的时候,也可以采用如下方式:

    pip install django -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

    1)获取当前系统时间 YYYY-MM-DD HH:MM:SS
    v_time_eq=`date "+%F %T"`
    v_time=`date "+%Y-%m-%d %H:%M:%S"`

    一个简单的日志函数
    function log()
    {
    echo `date "+%Y-%m-%d %H:%M:%S"`
    }

    2)shell函数
    #!/bin/sh
    function test()
    {
    echo "arg1 = $1"
    if [ $1 = "1" ] ;then
    echo "19010"
    else
    echo "0"
    fi
    }
    echo 语句
    该方式是一个非常安全的返回方式,即通过输出到标准输出返回。因为子进程会继承父进程的标准输出,因此,子进程的输出也就直接反应到父进程。
    接收方式:可以通过$( )获取返回值
    vul=$(test 1)
    $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误;当函数有return时,$?表示函数的返回值;

    4)Linux文件查看命令cut
    -d:指定字段的分隔符,默认的字段分隔符为“TAB”;
    -f:显示指定字段的内容;
    样例
    cat wang.txt |cut -d "," -f2 |cut -d ":" -f2

    5)linux shell脚本中执行多个命令的方法
    第一种是以分号(;)进行划分:
    表示:各命令的执行的果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。

    第二种命令之间&&隔开
    表示:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。

    第三种每个命令之间用||隔开
    表示:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。

    5)
    ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
    $ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。

    6)当出现有多个双引号和单引号,又想一块显示出来,可以采用如下的方式
    echo '{"insecure-registries":["{$ip}:4000"]}' > /etc/docker/daemon.json
    string1='{"insecure-registries":["'
    string2=':4000"]}"'
    ip="172.168.0.1"
    echo "$string1" "$ip" "$string2"

    7) wget 用来从指定的URL下载文件
    文件自动储存到指定的目录下,则需要借用-P这个参数,可以使用以下的指令
    wget -P 目录 网址
    举例来说,如果你要放到/root底下,你可以打下列的指令:
    wget -P /root 网址

    8)gzip知识点
    压缩文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
    gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
    语法:gzip [选项] 压缩(解压缩)的文件名
    语法:gzip [选项] 压缩(解压缩)的文件名
    各选项的含义:
    -c 将输出写到标准输出上,并保留原有文件。
    -d 将压缩文件解压。
    -l 对每个压缩文件,显示下列字段: 压缩文件的大小 未压缩文件的大小 压缩比 未压缩文件的名字
    -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
    -t 测试,检查压缩文件是否完整。
    -v 对每一个压缩和解压的文件,显示文件名和压缩比。
    -num 用指定的数字num调整压缩的速度,
    压缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。
     --best  此参数的效果和指定"-9"参数相同。
     --fast  此参数的效果和指定"-1"参数相同。
    -1或--fast表示最快压缩方法(低压缩比),
    -9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
    样例:
    gzip *压缩
    gzip -dv * 解压

    解压缩:
    Linux下以tar.gz为扩展名的软件包,是用tar程序打包并用gzip程序压缩的软件包。要安装这种软件包,
    需要先对软件包进行解压缩,使用“tar -zxfv filename.tar.gz”可以对软件包进行解压缩,
    解压缩所得的文件在以filename为名的目录中。进入该目录,可以看到解压缩出来的文件了
    tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

    9)将文件 file1.txt 设为所有人皆可读取 :
    chmod ugo+r file1.txt

    10)只是下载pip依赖包,但是不安装
    pip download -r /root/kolla/requirements.txt -r /root/kolla/test-requirements.txt
    或者
    pip install -d /root/pypiserver -r /root/kolla/requirements.txt -r /root/kolla/test-requirements.txt
    11)sed相关内容
    sed -i 就是直接对文本文件进行操作的
    sed -i 's/原字符串/新字符串/' /home/1.txt ---只改出现的第一个
    sed -i 's/原字符串/新字符串/g' /home/1.txt ----所有的涉及原字符串的都修改
    sed -i 's/原字符串/替换字符串/g' filename //替换文件中的所有匹配项

    11)yum源知识点
    显示yum仓库
    yum repolist 查看yum仓库信息
    yum repolist all(显示所有)

    使用新的repo源时,必须要做得步骤
    yum clean all
    yum makecache

    12)把远程yum源服务器的包同步到本地yum源服务器上

    方式一:前提是远程服务器支持rsync

    rsync命令是一个远程数据同步工具
    -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
    -r, --recursive 对子目录以递归模式处理
    -v, --verbose 详细模式输出。
    -t, --times 保持文件时间信息。
    样例:
    rsync -avrt --delete rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/ /home/www/Centos/7/os/x86_64/Packages

    红色部分为远程yum源服务器上要同步的目录(repodata所在的那一级),粉色为要存放数据的本地yum源服务器上的路径

    rsync -avrt --delete rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/Packages/ /home/www/Centos/7/extras/x86_64/Packages
    rsync -avrt --delete rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/updates/x86_64/Packages/ /home/www/Centos/7/updates/x86_64/Packages

    提供几个支持rsync同步的网站
    http://mirrors.kernel.org
    http://rsync.mirrors.ustc.edu.cn
    http://mirrors.neusoft.edu.cn

    方式二:使用reposync 命令

    在使用第二种方法之前,需要提前把同步网站的repo文件下载到本地(url可以具体到某个具有repodata的目录),并且yum makecache一下

    yum install createrepo yum-utils -y
    安装这两个工具主要使用 createrepo 和reposync 这两个命令

    reposync (前提条件是远程的.repo文件,已经拷贝到本地,.repo文件中url换成你要的地址,有repodata那一级目录)
    -r REPOID, --repoid=REPOID
    specify repo ids to query, can be specified multiple times (default is all enabled)
    -p DESTDIR, --download_path=DESTDIR
    Path to download packages to: defaults to current dir
    如果有新的包添加进了x86_64、extra、updates的任意一个目录中,都需要createrepo --update dir来更新yum源服务器的索引。客户端也需要yum makecache一下

    已经下载过的会跳过,执行下载的时候 -p为指定目录,不然它会自动在当前目录创建”/base/Packages”目录,再将rpm包存入该目录下。

    样例:reposync -r epel -p /home/www/bak

    操作步骤:先yum clean all了一下,然后把repo文件的url写成远程yum源你要同步目录的url,再yum makecache ,通过yum repolist 把repoid找出来,最后通过reposync -r yum-cd -p /home/www/suning,同步到本地

    两种方式同步完以后,使用createrepo 建立本地索引

    createrepo -pdo /var/www/html/epel/ /var/www/html/epel/  

    会在epel目录下出现一个repodata的目录

    #第一个目录是repodata存放目录,第二个目录是需要生成索引信息yum源仓库目录,在建立索引的时候,不能在/var/www/html/epel/ 的子目录创建,否则一直创建失败

    样例:createrepo -pdo /home/www/mariadb/10.0/centos7-amd64 /home/www/mariadb/10.0/centos7-amd64

    13)确认你的CentOS 的版本

    # cat /etc/redhat-release
    CentOS release 6.6 (Final)

    14)其他

    RPMS中的软件包是直接可以用rpm来安装的,而SRPMS中的软件包是需要先编译再用rpm安装的
    noarch是no architecture的缩写,说明这个包可以在各个不同的cpu上使用percona-release-0.1-3.noarch.rpm以noarch命名的rpm包,是一个yum 仓库包,安装完这个包以后,yum仓库就自动有了,并且这个rpm包里面还有gpg key,自动把gpg key放入相应的/etc/pki/rpm-gpg目录

    15)只是下载rpm包,而不进行安装

    1)方法一:yum
    yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的。
    $ sudo yum install --downloadonly <package-name>
    默认情况下,一个下载的RPM包会保存在下面的目录中:
    /var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
    以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)
    如果你想要将一个包下载到一个指定的目录(如/tmp):
    $ sudo yum install --downloadonly --downloaddir=/tmp <package-name>
    注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装。
    另外一个重要的事情是,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用--downloadonly命令选项:
    $ sudo yum install yum-plugin-downloadonly
    如果没有该插件,你会在使用yum时会报如下错误
    Command line error: no such option: --downloadonly
    2)方法二: Yumdownloader
    另外一个下载RPM包的方法就是通过一个专门的包下载工具--yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。
    $ sudo yum install yum-utils
    下载一个RPM包:
    $ sudo yumdownloader <package-name>
    下载的包会被保存在当前目录中。你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是,任何依赖包不会被下载。
    下载示例:
    yumdownloader lsof --resolve --destdir=/data/mydepot/  #resolve下载依赖

     16)配置本地yum源

    挂载本地iso镜像
    [root]#cd /mnt // 定位到/mnt目录
    [root]#mkdir /mnt/cdrom // 创建目录cdrom
    [root]#mount /dev/cdrom /mnt/cdrom // 挂载iso镜像到/mnt/cdrom
    注:先将本地ios镜像,挂载到linux虚拟机。

    配置本地源
    [root]#cd /etc/yum.repos.d // 定位到源配置目录
    [root]#cd ls // 列表
    [root]#vi local.repo // 修改源配置文件
    [local]
    name=local
    baseurl=file:///mnt/cdrom
    enabled=1
    gpgcheck=0
    [root]#yum makecache // 更新源缓存
    注:需要将/mnt/cdrom的本地iso镜像,作为本地源。

     17)查看缓存的yum源

    yum repolist

    查看命令(yum repolist)执行结果如下
    [root@promote ~]# yum repolist
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    * epel: epel.scopesky.iq
    docker-ce-stable | 3.5 kB 00:00:00
    (1/2): docker-ce-stable/x86_64/primary_db | 25 kB 00:00:00
    (2/2): docker-ce-stable/x86_64/updateinfo | 55 B 00:00:00
    源标识 源名称 状态
    base/7/x86_64 CentOS-7 - Base 10,019
    docker-ce-stable/x86_64 Docker CE Stable - x86_64 36
    epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,018
    extras/7/x86_64 CentOS-7 - Extras 382
    updates/7/x86_64 CentOS-7 - Updates 1,477
    zabbix/x86_64 Zabbix Official Repository - x86_64 93
    zabbix-non-supported/x86_64 Zabbix Official Repository non-supported - x86_64 4
    repolist: 25,029

  • 相关阅读:
    cad 创建自定义菜单
    标准C++的类型转换符
    Assert usages
    c++排序算法与模板和STL_zhuan
    C++ 中int,char,string,CString类型转换
    C++ 之 C style string
    数据库优化细节——转
    C++容器——zhuan
    公共类库_address:http://www.cnblogs.com/wuhuacong/archive/2012/03/26/2418786.html
    C++学习篇——C++ STL中迭代器介绍(收集)
  • 原文地址:https://www.cnblogs.com/potato-chip/p/9747855.html
Copyright © 2020-2023  润新知