0418第十五次课:日常运维-防火墙、定时任务、系统管理

日常运维-防火墙、定时任务

一、iptables的备份及恢复

  • iptables 规则备份

    防火墙规则只存在内存中,并没保存在文件中。如果系统重启之前设定的规则就没有了,所以设定完成后需要保存一下。

    service iptables save //会备份到/etc/sysconfig/iptables文件中

    service iptables save > 文件名 //指定文件备份

  • 恢复

    iptables-restore < 备份的文件名 //恢复备份文件中的规则

    步骤:

    清理nat表规则

    iptables -t nat -F

    iptables -t nat -nvL

    恢复备份文件:

    iptables-restore < test.tpt

二、使用firewalld

  • 开启firewalld

    systemctl stop iptables.service

    systemctl disable iptables.service

    systemctl enable firewalld.service

  • firewalld默认9个zone(zone为firewalld的单位,默认为pulic)

  • zone操作

    firewall-cmd --set-default-zone=work //设定默认zone

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

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

    firewall-cmd --zone=dmz --remove-interface=lo //删除指定网卡zone

三、linux任务计划

linux中任务计划必不可以少,它可以定时执行一些备份数据、重启服务器等操作,操作可能是一个脚本或者命令。

  • crontab任务计划命令:

    • 格式:分 时 日 月 周 user command

      分范围:0-59,时范围:0-60,日范围:0-31,月范围1-12,周范围:1-7

      指定范围:1-5 ,指定1到5范围 可以用1,2,3表示1或者2或者3

      */2表示被2整除的数字,比如小时,那就是每隔2小时

  • 注意点:

  1. 文件/var/spool/cron/username
  2. 可用格式1-5表示一个范围1到5
  3. 可用格式1,2,3表示1或者2或者3
  4. 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
  5. 要保证服务是启动状态 systemctl start crond.service
  • 计划任务配置文件

    cat /etc/crontab

    文件中有几个环境变量:

    SHELL=/bin/bash

    PATH:环境变量,命令的路径

    MAILTO:发邮件给谁

  • 格式说明

# Example of job definition:
# .---------------- minute (0 - 59) //分钟
# |  .------------- hour (0 - 23) //小时
# |  |  .---------- day of month (1 - 31)//日期
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... //月份
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  //星期
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed  //需要执行的命令
  • 新增定时任务

    crontab -e //进入编辑模式,和vim一样,按i进行编辑

  • 示例:

    1.新增一个凌晨3点执行的脚本,*代表所有的意思。并且把日志和错误日志输出

    0 3 1-10 */2 * /bin/bash /usr/local/sbin/test.sh /tmp/test.log 2>> /tmp/test2.log

    2.新增一个周二、周五才执行的脚本: 0 3 * * 2,5 /bin/bash /usr/local/sbin/test.sh /tmp/test.log 2>> /tmp/test2.log

    如果想用年份可以用星期确定唯一性,比如说今年的6月18号和明年的6月18号的星期肯定是不同的

  • 启动定时任务

    需要启动crond服务,定时任务才会生效

    systemctl start crond.service

    检查是否启动成功

    ps aux |grep cron

    或者:systemctl status crond 查看,如果状态是绿色就说明成功了

  • 任务计划不执行的原因分析

    写了定时任务,crond服务也是正常,但是就是不执行。

    原因可能为:脚本中命令未使用绝对路径,解决:要么将命令写一个绝对路径,要么将命令的路径加入到PATH变量里面去

    建议追加一个日志,这样就可以根据日志来判断。

  • 任务计划备份

    crontab文件存在位置/var/spool/cron/username,需要备份的时候直接复制即可。

四、chkconfig工具

  • chkconfig工具是linux服务的管理工具,cron、iptables、firewalld、mysql等都是服务。chkconfig可以管理这些服务开机是否启动等。

  • chkconfig工具在centos6和之前的版本中使用,centos7中已经逐渐的不在使用了,为了过度centos7还可以使用,但是后面趋势是会被遗弃。

  • 列出系统所有服务

    chkconfig --list

    0-6 表示7个启动级别(centos6及以前):

    0:关机 1: 单用户 2:多用户模式(不带nfs服务) 3: 多用户模式(不带图形) 4: 保留级别 5: 多用户(带有图形) 6: 重启

  • 需要注意的是:启动脚本需要放到/etc/init.d/目录下

  • 关闭network服务

    chkconfig network off

  • 指定某一服务的某个级别开启或关闭

    chkconfig --level 3 network off //指定第三级别network服务关闭

    chkconfig --level 345 network on //指定network中的3,4,5级别开启

  • 将一个脚本加入到服务列表列表中

    首先把脚本放到/etc/init.d/目录下

    脚本名称没有要求,但是格式有要求:

    1、必须是一个shell脚本

    2、需指定运行级别,第10位开启,第90关闭

    示例:init.d目录下 cp network服务 随便起一个名字,进行添加

    cp network 123

    chkconfig --add 123

    结果:

    删除:chkconfig --del 123

五、systemd管理服务

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

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

    systemctl disable crond //不让开机启动

    systemctl status crond //查看状态

    systemctl stop crond //停止服务

    systemctl start crond //启动服务

    systemctl restart crond //重启服务

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

    在centos6或之前的版本中用chkconfig工具去管理系统的服务,在centos7中使用systemd。

  • 列出所有的service

  • 设置服务开机启动

    systemctl enable crond.service //.service 可以不加

  • 关闭开机启动

    systemctl disable crond

  • 查看状态

    systemctl status crond

  • 启动服务

    systemctl start crond

  • 停止服务

    systemctl stop crond

  • 检查服务是否开机启动

    systemctl is-enabled crond

###六、unit介绍

  • ssystemctl 状态如果是enabled 会在 /usr/lib/systemd/system 目录下生产软连接,这些文件都叫做unit。

  • unit分为以下类型:

    service 系统服务

    target 多个unit组成的组

    device 硬件设备

    mount 文件系统挂载点

    automount 自动挂载点

    path 文件或路径

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

    slice 进程组

    snapshot systemd快照

    socket 进程间通信套接字

    swap swap文件

    timer 定时器

  • unit相关的命令

    列出正在运行的unit:

    systemctl list-units

    列出所有的unit:

    systemctl list-units --all

    列出inactive状态的unit

    systemctl list-units --all --state=inactive

    列出状态为active的service

    systemctl list-units --type=service

    查看某个服务是否为active

    systemctl is-active crond.service

七、target介绍

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

  • target相关的命令

    列出系统中所有的target:

    systemctl list-unit-files --type=target

    查看指定target下面有哪些unit

    systemctl list-dependencies multi-user.target

    查看系统默认的target

    systemctl get-default

    设置默认的target

    systemctl set-default multi-user.target

  • 一个service属于一种类型的unit

  • 多个unit组成了一个target

  • 一个target里面包含了多个service

  • cat /usr/lib/systemd/system/sshd.service 看[install]部分

八、课堂笔记

  • firewalld-cmd添加规则示例

    firewall-cmd --add-port=80/tcp

    firewall-cmd --permanent --add-port=80/tcp; firewall-cmd --reload firewall-cmd --permanent --add-service=http; firewall-cmd --reload

  • firewall-cmd 如何添加自定义规则

  • centos各个版本服务器启动

转载于:https://my.oschina.net/u/3755326/blog/3039145

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值