Saltstack入门教程,输出重定向

2019-09-11 16:05栏目:公司领导
TAG:

linux 输入/输出重定向,linux重定向

文件描述符(fd)是与某个打开的文件或数据流相关联的整数。文件描述符0,1,2是系统预留的。

0 ---- stdin(标准输入)
1 ---- stdout(标准输出)
2 ---- stderr(标准错误)   

输入重定向的命令 < ,输出重定向的命令 > ;
错误重定向的命令 2>,追加重定向的命令 >> ;

重定向到文件

mkdir /tmp/10
cd /tmp/10
echo "123" > 1.txt
echo "456" >> 1.txt
cat 1.txt
#123
#456

ls + #错误重定向
#ls: cannot access +: NO such file or directory
ls + 2> 1.txt
cat 1.txt
#ls: cannot access +: NO such file or directory

#还可以将stderr转换成stdout,使得stderr和stdout都被重定向到同一文件
#cmd > output.txt 2>&1   或者 cmd &> output.txt
ls + > output.txt 2>&1   #ls + &> output.txt
cat output.txt
#ls: cannot access +: NO such file or directory

#重定向到空设备
#/dev/null是一个空设备,向它写入的数组都会丢弃,但返回状态是成功的
ls + > /dev/null 2>&1
echo $?
#2 表示上条命令没有执行成功
#利用它的返回状态常用if判断中,如:
#检查多个主机是否存活 
for ip in 192.168.217.{1..3};do
        if ping -c 1 $ip >/dev/null;then
        #ping不通则为false
                echo "$ip ok"
        else
                echo "$ip no!"
        fi
done

redirect.sh

#!/bin/bash
cat << EOF >log.txt
Log file head
this is a test log file
function :system statistics
EOF

在cat << EOF >log.txt与下一个EOF之间的所有文本都会被当做stdin数据。log.txt的内容如下:

sh redirect.sh
cat log.txt
#Log file head
#this is a test log file
#function :system statistics

read命令
read命令从标准输入中读取,并把读取的内容复制给变量。

#-p prompt  提示信息
read -p "please input your name:" name
#please input your name:James
echo $name
#James

#-a array   保存为数组,元素以空格分隔
read -p "please input your hobby:" -a arr
#please input your hobby:basketball pingpang running
echo ${arr[*]}
#basketball pingpang running

#read -d delimiter 持续读取直到遇到delimiter第一个字符退出
read -p "please input number of not 5:" -d 5
#please input number of not 5:4
#6
#5  遇到5返回

#-s 隐藏输入
#-t timeout 等待超时时间,秒


cat a.txt
#a b c
#1 2 3
#x y z
#while循环按行读取文件
cat a.txt |
while read line;do
echo $line
sleep 1
done

#重定向读取
while read line;do
echo $line
sleep 1
done < a.txt

#for循环读取
old_IFS=$IFS
IFS="n"
for i in `cat a.txt`;do
echo $i
sleep 1
done
IFS=$old_IFS


#分别变量赋值
read a b c
#1 2 3
echo $a $b $c
#1 2 3

Saltstack 快速入门教程,Saltstack入门教程

Linux内存查看工具---Smem,linux查看---smem

物理内存不足对Linux桌面系统和服务器系统的性能影响都很大。当你的计算机变慢时,要做的第一件事就是释放内存。尤其是在多用户环境以及执行关键任务的服务器环境下,内存消耗会变得更加关键,因为多个用户和应用线程会同时竞争更多的内存空间。

如果要监测系统内各种资源的使用情况(比如说CPU或内存),图形化显示是一种高效的方法,通过图形界面可以快速分析各用户和进程的资源消耗情况。在linux下图形化分析内存使用情况的方法,使用到命令行工具是smem.

物理内存使用情况: RSS 、 PSS 和 USS

由于Linux使用到了虚拟内存(virtual memory),因此要准确的计算一个进程实际使用的物理内存就不是那么简单。 只知道进程的虚拟内存大小也并没有太大的用处,因为还是无法获取到实际分配的物理内存大小。

·  RSS(Residentset size),使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。

·  PSS(Proportionalset size)会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。

·  USS(Unique set size )是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分。

常用参数

$ smem

默认情况下,如果不带参数,将显示所有进程的内存使用情况,而且是一次显示,不是动态显示。

$ smem -m

显示每个库使用内存的情况

$ smem -p | grepfirefox

按百分比显示使用情况

$ smem -u -p

按用户统计使用情况

图形结果

如果你使用的图形界面,还可以生成图形结果

圆饼图

smem --pie name -s uss

柱状图

smem --bar pid -c “pss uss rss”

Saltstack 快速入门教程

1.介绍

Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet 和 Chef 的功能,更加强大,更适合大规模批量管理服务器,并且它比 Puppet 更容易配置。 三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。

2.准备工作

准备两台机器,这两台机器都关闭 selinux,清空 iptables 规则并保存。 master:192.168.1.160 slaver:192.168.1.161

更新软件源

[[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[[email protected] ~]# yum makecache fast
Loaded plugins: fastestmirror
HuaDongBD                                                                                                                                            | 2.9 kB  00:00:00     
base                                                                                                                                                 | 3.6 kB  00:00:00     
extras                                                                                                                                               | 3.4 kB  00:00:00     
os                                                                                                                                                   | 3.6 kB  00:00:00     
updates                                                                                                                                              | 3.4 kB  00:00:00     
updates/7/x86_64/primary_db                                                                                                                          | 7.8 MB  00:00:07     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Metadata Cache Created
[[email protected] ~]#

3. 安装

在SaltsStack架构中服务端叫作Master,客户端叫作Minion,都是以守护进程的模式运行,一直监听配置文件中定义的ret_port(saltstack客户端与服务端通信的端口,负责接收客户端发送过来的结果,默认4506端口)和publish_port(saltstack的消息发布系统,默认4505端口)的端口。当Minion运行时会自动连接到配置文件中定义的Master地址ret_port端口进行连接认证。

  • Master:控制中心,salt命令运行和资源状态管理
  • Minion : 需要管理的客户端机器,会主动去连接Mater端,并从Master端得到资源状态信息,同步资源管理信息
  • States:配置管理的指令集
  • Modules:在命令行中和配置文件中使用的指令模块,可以在命令行中运行
  • Grains:minion端的变量,静态的
  • Pillar:minion端的变量,动态的比较私密的变量,可以通过配置文件实现同步minions定义
  • highstate:为minion端下发永久添加状态,从sls配置文件读取.即同步状态配置
  • salt_schedule:会自动保持客户端配置

3.1 服务端安装

yum install -y epel-release

yum install -y salt-master salt-minion

[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y salt-master salt-minion

3.2 客户端安装

[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y salt-minion

4.配置

4.1 Salt minion配置

用vi/vim打开/etc/salt/minion,找到配置选项master所在行,一般在第16行。修改内容,去掉#,冒号后有一个空格,将salt更改为master。

示例操作如下:

[[email protected] ~]# vi /etc/salt/minion

[[email protected] ~]# vi /etc/salt/minion

# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: master

如果找不到master对应的行,可以直接在文件尾部添加一行master: mastermaster: 192.168.1.160

也可以使用sed命令直接修改配置文件

[[email protected] ~]# sed -i 's/#master: salt/master: 192.168.1.160/g' /etc/salt/minion

5.启动服务

(1)服务端

[[email protected] ~]# salt-master start

在后端运行

[[email protected] ~]# salt-master start &
[3] 35438
[[email protected] ~]#

(2)客户端

[[email protected] ~]# salt-minion start &
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate

[[email protected] ~]# salt-minion start &
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate

[[email protected] ~]# salt-minion start
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
[ERROR   ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate

minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。

6.配置认证

(1)在服务端上操作 新打开一个nb0终端

[[email protected] ~]# salt-key -a nb0
The following keys are going to be accepted:
Unaccepted Keys:
nb0
Proceed? [n/Y] y
Key for minion nb0 accepted.
[[email protected] ~]#

[[email protected] ~]# salt-key -a nb1
The following keys are going to be accepted:
Unaccepted Keys:
nb1
Proceed? [n/Y]y
Key for minion nb1 accepted.
[[email protected] ~]#

[[email protected] ~]# salt-key -a nb2
The following keys are going to be accepted:
Unaccepted Keys:
nb2
Proceed? [n/Y] y
Key for minion nb2 accepted.
You have mail in /var/spool/mail/root
[[email protected] ~]#

[[email protected] ~]# salt-key
Accepted Keys:
nb0
nb1
nb2
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[[email protected] ~]# 

注意: 在==大规模部署Minion==的时候可以设置自动接受指定等待认证的 key

在修改/etc/salt/master前,先备份一下

[[email protected] ~]# cp /etc/salt/master /etc/salt/master.bak

通过vi打开/etc/salt/master

[[email protected] ~]# vi /etc/salt/master

找到#auto_accept: False一行,修改False为True

# Enable auto_accept, this setting will automatically accept all incoming
# public keys from the minions. Note that this is insecure.
#auto_accept: False

或者通过sed命令修改

[[email protected] ~]# sed -i 's/#auto_accept: False/auto_accept: True/g' /etc/salt/master

ctrl+c停止salt-master,然后再启动

[[email protected] ~]# salt-master start 
^C[WARNING ] Stopping the Salt Master
[WARNING ] Stopping the Salt Master

Exiting on Ctrl-c
[WARNING ] Stopping the Salt Master

Exiting on Ctrl-c

Exiting on Ctrl-c
[[email protected] ~]# salt-master start

(2)测试验证

[[email protected] ~]# salt '*' test.ping
nb2:
    True
nb1:
    True
nb0:
    True
[[email protected] ~]#

这里的 * 必须是在 master 上已经被接受过的客户端,可以通过 salt-key 查到

远程执行命令

[[email protected] ~]# salt '*' cmd.run   'df -h'
nb0:
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root   48G   26G   22G  55% /
    devtmpfs             3.9G     0  3.9G   0% /dev
    tmpfs                3.9G   16K  3.9G   1% /dev/shm
    tmpfs                3.9G  402M  3.5G  11% /run
    tmpfs                3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sda1           1014M  139M  876M  14% /boot
    /dev/mapper/cl-home   24G   33M   24G   1% /home
    tmpfs                781M     0  781M   0% /run/user/0
    /dev/loop0           7.8G  7.8G     0 100% /var/ftp/iso-home
nb1:
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root   48G  4.3G   44G   9% /
    devtmpfs             3.9G     0  3.9G   0% /dev
    tmpfs                3.9G   12K  3.9G   1% /dev/shm
    tmpfs                3.9G  377M  3.5G  10% /run
    tmpfs                3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sda1           1014M  139M  876M  14% /boot
    /dev/mapper/cl-home   24G   33M   24G   1% /home
    tmpfs                781M     0  781M   0% /run/user/0
nb2:
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root   48G  4.9G   43G  11% /
    devtmpfs             3.9G     0  3.9G   0% /dev
    tmpfs                3.9G   12K  3.9G   1% /dev/shm
    tmpfs                3.9G  401M  3.5G  11% /run
    tmpfs                3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sda1           1014M  139M  876M  14% /boot
    /dev/mapper/cl-home   24G   33M   24G   1% /home
    tmpfs                781M     0  781M   0% /run/user/0
[[email protected] ~]# 

首先我们要知道在安装SaltStack的时候Master 跟Minion端都分别安装了哪些文件,这样有利于我 们去了解SaltStack日后的一些日常操作。大家可以 通过以下命令查看SaltStack安装部署的时候分别安 装了哪些命令(yum安装方式)。

[[email protected] ~]# rpm -ql salt-master
/etc/salt/master            #salt master 配置文件
/usr/bin/salt               #salt master  核心操作命令
/usr/bin/salt-cp            #salt  文件传输命令
/usr/bin/salt-key           #salt  证书管理命令
/usr/bin/salt-master        #salt master  服务命令
/usr/bin/salt-run           #salt master runner 命令
/usr/bin/salt-unity
/usr/lib/systemd/system/salt-master.service
/usr/share/man/man1/salt-cp.1.gz
/usr/share/man/man1/salt-key.1.gz
/usr/share/man/man1/salt-master.1.gz
/usr/share/man/man1/salt-run.1.gz
/usr/share/man/man1/salt-unity.1.gz
/usr/share/man/man7/salt.7.gz
[[email protected] ~]#

[[email protected] ~]# salt --version
salt 2015.5.10 (Lithium)
[[email protected] ~]#

版权声明:本文由ag真人发布于公司领导,转载请注明出处:Saltstack入门教程,输出重定向