笔记9(日常运维2iptables nat表、zone、service、cron、chkconfig、systemd、unit、target、rsyncscreen)

nat表应用


A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。

需求1:可以让B机器连接外网

查看路由转发:cat /proc/sys/net/ipv4/ip_forward 如果是0,我们需要打开它

A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward

增加一条规则A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

B上设置网关为192.168.100.1 命令:route add default gw 192.168.100.1 查看网关:route -n

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口

B机器设置一下DNS:vi /etc/resolv.conf    进去了写:nameserver 119.29.29.29

A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward

A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130

B上设置网关为192.168.100.1

iptables规则备份和恢复


默认保存命令:service iptables save //会把规则保存到/etc/sysconfig/iptables

指定保存命令:例如,把iptables规则备份到my.ipt文件中,命令:iptables-save > /tmp/my.ipt

恢复刚才备份的规则命令:iptables-restore < /tmp/my.ipt

Linux防火墙-firewalld

打开firewalld方法:

 第一步,systemctl disable iptables

 第二步,systemctl stop iptables

 第三步,systemctl enable firewalld

 第四步,systemctl start firewalld

 

关闭firewalld开启netfilter方法

 第一步,不让他开机启动:systemctl disable firewalled

 第二步,再把服务停掉:systemctl stop firewalld

 第三步,然后开启netfilter防火墙,开启之前需要安装包:yum install -y iptables-services

 第四步,安装完它会产生iptables服务,查看一下:systemctl enable iptables

 第五步,开启iptables服务:systemctl start iptables

zone

firewalld默认有9个zone,每个zone都好比一个规则级,自带一些规则,默认zone为  public

查看所有的zone:firewall-cmd --get-zones

查看默认zone: firewall-cmd --get-default-zone

9个zone介绍:

zone的操作

firewall-cmd --set-default-zone=work          //自己设定默认zone,例如work。

firewall-cmd --get-zone-of-interface=ens33      //查指定网卡

firewall-cmd --zone=public --add-interface=lo    //给指定网卡设置zone

firewall-cmd --zone=dmz --change-interface=lo    //针对网卡更改zone

firewall-cmd --zone=dmz  --remove-interface=lo   //针对网卡删除zone

firewall-cmd --get-active-zones             //查看系统所有网卡所在的zone

service的操作

service是firewall防火墙下的一个端口

firewall-cmd --get-services  查看所有的servies

firewall-cmd --list-services  //查看当前zone下有哪些service

firewall-cmd --zone=public --list-service //查看指定zone下有哪些service

增加指定服务:firewall-cmd --zone=public --add-service=http //把http增加到public  zone下面,但是这不是永久的配置文件里不会有。

删除指定服务:firewall-cmd --zone=public --remove-service=http

ls /usr/lib/firewalld/zones/ //zone的配置文件模板

ls /usr/lib/firewalld/services/ service的配置模板

要想永久生效就要保存到配置文件中,方法:

firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之后  会在/etc/firewalld/zones目录下面生成配置文件

需求:ftp服务自定义端口1121,需要在work zone下面放行ftp

第一步,先把usr目录下的ftp.xml文件拷贝到etc下的service目录来:

cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/

第二步,编辑刚拷贝到service目录下ftp.xml的配置文件,把里边的21端口改成1121:

vi /etc/firewalld/services/ftp.xml //把21改为1121

第三步,把usr目录下的ftp.xml文件拷贝到etc下的zones目录下:

cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

第四步,编辑etc下刚拷贝过来的work.xml文件增加以下内容:

vi /etc/firewalld/zones/work.xml  增加一行,<service name="ftp"/>

最后一步,重新加载:firewall-cmd --reload

查看一下:firewall-cmd --zone=work --list-services

Linux任务计划


crontab

crondab在:cat /var/spool/cron/root目录下

命令:crontab -u、-e、-l、-r

-u :指定某个用户,不加-u选项则为当前用户;

-e :制定计划任务;

-l :列出计划任务;

-r :删除计划任务。

格式:分 时 日 月 周 user command

文件/var/spool/cron/username

命令:cat /etc/crontab 查看任务计划的配置文件

1.分钟范围0-59,2.小时范围0-23,3.日范围1-31,4.月范围1-12,5.周1-7(0或者7都表示周日),  6.用户(不写默认是root),7.执行的命令。

命令:crontab -e 进入到配置文件中,编辑配置文件,内容格式如下:

* 表示所有(每分、每小时、每天、每周、每月)

可用格式1-5表示一个范围1到5,比如月,那就是每个月的1到5号)

可用格式1,2,3表示1或者2或者3,比如周,那就是每周的周一周二周三)

可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时,比如月,就是2、4、6、..月

要保证服务是启动状态:输入命令,systemctl start crond.service

如何检查是启动?

命令:ps aux |grep cron 看看有没有这个进程

或者用这个命令:systemctl status crond 如果下边显示绿色证明他启动了

如何停掉服务?

用命令:systemctl stop crond

Linuxde的系统管理服务-chkconfig(CentOS6)

Linux系统所有的预设服务可以查看 /etc/init.d/ 目录得到: ls /etc/init.d/

命令:chkconfig --list 列出所有服务并显示每个级别是否开启

上图里的级别(0,1,2,3,4,5,6)就是 /etc/inittab 里面的那几个启动级别了:

0、1、6运行级别被系统保留;一般的Linux系统实现中,都使用了2、3、4、5几个级别。

0作为shutdown动作,1作为重启至单用户模式,2表示无NFS支持的多用户模式,3表示完全多用户模式 (也是最常用的级别),4保留给用户自定义,5表示图形登录方式,6为重启。

命令:chkconfig network off 让这个服务关闭

命令:chkconfig network on 让这个服务开启

命令:chkconfig --level 3 network off 关闭指定某个服务的一个级别(例如network的3级别)

命令:chkconfig --level 345 network off 关闭指定某个服务的几个级别

命令:chkconfig --del network  删除自定义服务

命令:chkconfig --add network  增加自定义服务

Linux系统服务管理-systemd(CentOS7)


一个service属于一种类型的unit

 多个unit组成了一个target

 一个target里面包含了多个service

命令:systemctl list-units --all --type=service 把service类型的服务列出来

几个常用的服务相关的命令

systemctl enable crond.service //让服务开机启动

systemctl disable crond //不让开机启动

systemctl status crond //查看状态

systemctl stop crond //停止服务

systemctl start crond //启动服务

systemctl restart crond //重启服务

systemctl is-enabled crond //检查服务是否开机启动

unit介绍

ls /usr/lib/systemd/system //系统所有unit,分为以下类型

service 系统服务

target 多个unit组成的组

device 硬件设备

mount 文件系统挂载点

automount 自动挂载点

path 文件或路径

scope 不是由systemd启动的外部进程

slice 进程组

snapshot systemd快照

socket 进程间通信套接字

swap  swap文件

timer 定时器

unit相关的命令

systemctl list-units //列出正在运行的unit

systemctl list-units --all //列出所有,包括失败的或者inactive的

systemctl list-units --all --state=inactive //列出inactive的unit

systemctl list-units --type=service//列出状态为active的service

systemctl is-active crond.service //查看某个服务是否为active

target介绍

一个target就是多个unit的组合,

系统为了方便管理用target来管理unit。

systemctl list-unit-files --type=target  列出系统里边所有的target。

systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit

systemctl get-default //查看系统默认的target

systemctl set-default multi-user.target 设置一个默认的target

一个service属于一种类型的unit

 多个unit组成了一个target

 一个target里面包含了多个service

命令:cat /usr/lib/systemd/system/sshd.service // cat一下service看最后[install]部分它会告  诉你这个service属于哪个target。

Linux文件同步估计-rsync

命令:rsync -av /etc/passwd /tmp/1.txt 把etc/passwd文件拷贝到tmp下,并改名为1.txt

命令:rsync -av /etc/passwd [email protected]:/tmp/1.txt 远程拷贝同步,假如我要拷贝到  对方root用户下,写它的IP,然后冒号,后边跟它的文件路径,输入密码。

命令:rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt

rsync格式:

rsync [OPTION] … SRC   DEST  本机的格式

rsync [OPTION] … SRC   [[email protected]]host:DEST 拷贝到远程服务器上的格式。

rsync [OPTION] … [[email protected]]host:SRC   DEST 反着拷贝,先写远程的机器或者目录,然后拷贝到本  地的目录下。

rsync [OPTION] … SRC   [[email protected]]host::DEST

rsync [OPTION] … [[email protected]]host::SRC   DEST

OPTION:选项(-a、-v、..) SRC:原目录 DEST:目标目录或文件 [email protected]:用户(可以省略,不写用户  他就是当前终端的用户,他默认是root)  host:IP地址

rsync常用选项

-a 包含-rtplgoD

-r 同步目录时要加上,类似cp时的-r选项

-v 同步时显示一些信息,让我们知道同步的过程

-l 保留软连接

-L 加上该选项后,同步软链接时会把源文件给同步

-p 保持文件的权限属性

-o 保持文件的属主

-g 保持文件的属组

-D 保持设备文件信息

-t 保持文件的时间属性

--delete 删除DEST中SRC没有的文件,删除目标目录中,原目录里边没有的文件。要想一模一样必须  加这个选项,

--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同  步       例如:下图为过滤掉以.txt结尾的所有文件,不要这些文件。

他不支持连写,但支持多些,例如还过滤以阿明开头的所有文件,不要他。

-P 显示同步过程,比如速率,比-v更加详细

-u 加上该选项后,如果DEST中的文件比SRC新,则不同步,如果目标目录里的文件比原文件新,则不  同步

-z 传输时压缩

rsync通过ssh方式同步

格式:rsync -av test1/ 192.168.133.132:/tmp/test2/

命令:rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ -p指定对方的端口,例如  22端口

rsync 通过服务的方式同步

第一步,要编辑配置文件/etc/rsyncd.conf  //下面是rsyncd.conf的样例,把他写进去:

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.133.130

[test]

path=/root/rsync

use chroot=true

max connections=4

read only=no

list=true

uid=root

gid=root

auth users=test                        这里是密码实验时可以关掉前边加上#号

secrets file=/etc/rsyncd.passwd

hosts allow=192.168.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24  这些IP根据你需要的改!!

第二步,启动服务rsync --daemon  启动完用命令检测一下是否启动了:ps aux |grep rsync

用命令:netstat -lntp 查看一下他监听的端口是不是873

最后一步:用这个命令传输,格式:rsync -av test1/ 192.168.133.130::module/dir/

rsyncd.conf配置文件详解

port:指定在哪个端口启动rsyncd服务,默认是873端口。可以更改。

log file:指定日志文件。

pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。

address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服  务,如果不指定该参数,默认是在全部IP上启动。也可以指定多个IP

[]:指定模块名,里面内容自定义。

path:指定数据存放的路径。

use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是  实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文  件。默认情况下chroot值为true,如果你的数据当中有软连接文件,阿铭建议你设置成false。

Linux同步工具-

max connections:指定最大的连接数,默认是0,即没有限制。

read only ture|false:如果为true,则不能上传到该模块指定的路径下。

list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐  藏。

uid/gid:指定传输文件时以哪个用户/组的身份传输。

auth users:指定传输时要使用的用户名。

secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码  文件的权限一定要是600。格式:用户名:密码

hosts allow:表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。

当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带  上密码,可以设定一个密码文件

rsync -avL [email protected]::test/test1/  /tmp/test8/ --password-file=/etc/pass

其中/etc/pass内容就是一个密码,权限要改为600

Linux系统日志


Linux系统总日志:/var/log/messages 可以用less查看一下

命令:/etc/logrotate.conf 日志切割配置文件

参考https://my.oschina.net/u/2000675/blog/908189

dmesg命令

/var/log/dmesg 日志,查看正确的登陆历史。

last命令,调用的文件/var/log/wtmp

lastb命令查看登录失败的用户,对应的文件时/var/log/btmp

/var/log/secure

screen工具


一个虚拟终端,为了不让一个任务意外中断

nohup command &

screen是一个虚拟终端

安装:yum install -y screen

screen直接回车就进入了虚拟终端

ctral a组合键再按d退出虚拟终端,但不是结束

列出来命令:screen -ls 查看虚拟终端列表

screen -r id 进入指定的终端

命令:screen -S aming 定义一个自定义名字

screen -r aming

时间: 2024-10-05 17:17:31

笔记9(日常运维2iptables nat表、zone、service、cron、chkconfig、systemd、unit、target、rsyncscreen)的相关文章

笔记8(日常运维w、vmstat、top、sar、nload、free、ps、netstat、tcptump、Linux防火墙)

w查看系统负载 date 查看当前系统的时间 w出来的,第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载.第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等.其实,在这些信息当中,我们最应该关注的应该是第一行中的 'load average:' 后面的三个数值. 第一个数值表示1分钟内系统的平均负载值:第二个数值表示5分钟内系统的平均负载值:第三个数值表示15分钟系统的平均负载值.这个值的意义是,单位时间段内CPU活动进程数

Hbase 日常运维

1.1监控Hbase运行状况 1.1.1操作系统 1.1.1.1IO a.群集网络IO,磁盘IO,HDFS IO IO越大说明文件读写操作越多.当IO突然增加时,有可能:1.compact队列较大,集群正在进行大量压缩操作. 2.正在执行mapreduce作业 可以通过CDH前台查看整个集群综合的数据或进入指定机器的前台查看单台机器的数据: b.Io wait 磁盘IO对集群的影响比较大,如果io wait时间过长需检查系统或磁盘是否有异常.通常IO增加时io wait也会增加,现在FMS的机器

mysql日常运维与参数调优

日常运维 DBA运维工作 日常 导数据,数据修改,表结构变更 加权限,问题处理 其它 数据库选型部署,设计,监控,备份,优化等 日常运维工作: 导数据及注意事项 数据修改及注意事项 表结构变更及注意事项 加权限及注意事项 问题处理,如数据库响应慢 导数据及注意事项 数据最终形式(csv,sql文本,还是直接导入某库中) 导数据方法(mysqldump,select into outfile,) 注意事项 导出为csv格式需要file权限,并且只能数据库本地导 避免锁库锁表(mysqldump使用

日常运维工作中如何确保你的linux操作系统安全

在现在这个世道中,Linux操作系统的安全是十分重要的.但是,你得知道怎么干.一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作.下面是日常运维工作中常用的几种Linux安全的策略方法. 1. 使用SELinux SELinux是用来对Linux进行安全加固的,有了它,用户和管理员们就可以对访问控制进行更多控制.SELinux为访问控制添加了更细的颗粒度控制.与仅可以指定谁可以读.写或执行一个文件的权限不同的是,SELinux可以让你指定谁可以删除链接.只能追加.移动一个文件之类的

zookeeper 用法和日常运维

本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西.本文并非一个ZK搭建的快速入门,关于这方面,可以查看<ZooKeeper快速搭建>. 1.部署 本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容: 系统环境 集群模式的配置 单机模式的配置 系统环境和集群模式配置这两节内容大

hadoop日常运维与升级总结

日常运维 升级 问题处理方法 日常运维 进程管理 由于配置文件的更改,需要重启生效, 或者是进程自己因某种致命原因终止, 或者发现进程工作出现异常等情况下,需要进行手动进程的关闭或启动, 或者是增删节点过程中的需要, 进程的关闭与启动,使用 hadoop-daemon.sh start|stop datanode/namenode/journalnode/zkfc yarn-daemon.sh start|stop nodemanager/resourcemanager 检查进程是否完成关闭:

MySQL 日常运维业务账号权限的控制

在MySQL数据库日常运维中,对业务子账号的权限的统一控制十分必要. 业务上基本分为读账号和写账号两种账号,所以可以整理为固定的存储过程,让数据库自动生成对应的库的账号,随机密码.以及统一的读权限,写权限.(这里没有对 host进行过多的限制.只赋给通用的192.168.% .有兴趣的同学可以在存储过程加个参数,对host 控制) delimiter // set session sql_log_bin=OFF; drop PROCEDURE IF EXISTS `usercrt` // CRE

Openstack云计算项目实施其二(安装后日常运维)

5 安装后日常运维   运维基本的操作都在控制节点上的,较为方便的方式就是在openstack 的 dashboard(仪表盘)中进行,进入 dashboard 的方式就是直接在浏览器中输入控制节点的 IP 地址.(需要注意的是浏览器选择方面最好选择火狐浏览器或则谷歌浏览器,因为相对于 IE 浏览器而言,前面两个浏览器对于 openstack 的支持性要好,使用 IE 会在打开实例控制台时无法进入,出现"No vnc...."的错误信息) 用户名和密码放在控制节点/root 下,存放在

kafka知识体系-日常运维命令

本文主要讲解kafka日常运维的命令,包括topic管理.性能测试脚本. kafka版本0.10.0,安装步骤见大数据平台搭建-kafka集群的搭建 常用脚本 如下所有的命令均基于KAFKA_HOME=/wls/oracle/kafka ,服务器列表如下: 10.20.112.59 10.20.112.64 10.20.112.65 10.20.116.129 10.20.116.175 创建topic /wls/oracle/kafka/bin/kafka-topics.sh --zookee