• linux任务计划 chkconfig工具 systemd管理服务 unit介绍 target介绍


     linux任务计划 

    任务计划:特定时间备份数据,重启服务,shell脚本,单独的命令等等。

    任务计划配置文件:cat /etc/crontab

     

    [root@centos7 ~]# cat /etc/crontab 

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    # For details see man 4 crontabs

    # 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

     

     

    shell脚本,PATH环境变量,MAILTO发送邮件给谁

    时间5个位置格式依次:

    分钟,小时,几号,月份,星期;

    user-name             command to be executed

    用户(root可以省略)    最后是需要执行的命令。

    crontab  -e 需要执行的任务计划。

    每天凌晨3点执行的脚本

      0  3 * * * /bin/bash       /usr/local/sbin/123.sh  >>  /tmp/123.log   2>>/tmp/123.log

     

    /usr/local/sbin/123.sh  >>  /tmp/123.log  正确输出追加

    2>>/tmp/123.log  错误输出追加

     

     

     

    1到10号的3点 双月能被2整除的月份,星期周2和周5,

    0 3 1-10 */2   2,5  /bin/bash     /usr/local/sbin/123.sh>> /tmp/123.log    2>>/tmp/123.log

     

     

    没有年份:月份几号和星期确定年份的唯一性。

     

     

     

    启动服务:

    systemctl start crond

     

    查看是否启动:

    ps aux |grep cron

    或者:

    systemctl status crond

     

     

    注意:

    crontab -e编写脚本的时候:

    直接写命令有可能没有在PATH里面定义,或者用绝对路径,例如iptables 可以写成绝对路径/usr/sbin/iptables或者加入到PATH里面;

    此外还要添加一个错误日志用来查看执行信息。

     

     

    crontab -e编辑一个计划任务

    删除2月10点1分的大于100天的文件

    1 10 * 2 * /usr/bin/find     /tmp/ -type f -mtime +100 |xargs rm -f

     

    备份任务计划

    crontab任务文件存储在 /var/spool/cron/username

    这里面有对于用户的文件root,xiaobo用户等。

    直接拷贝这个目录路径文件即可。

     

     

    总结:

    crontab -u 、-e 、-l 、-r

    crontab -e编辑一个计划任务

    crontab -l 查看当前添加的计划任务

    crontab -r 删除当前计划任务

    crontab -u 指定一个用户

     

     

    格式: 分 时 日 月 周 user command

    文件 /var/spool/cron/username

     

    分范围0-59,时范围0-23 ,日范围0-31,月范围0-12,周1-6

    可用格式1-5表示一个范围1到5

    可用格式1,2,3表示1或者2或者3

    可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时要保证服务是启动状态

     

     

     

     

    linux系统服务管理工具chkconfig

    用来管理一些服务: network,mysql,httpd等等

     

    Chkconfig   --list列出当前的服务

    [root@centos7 ~]# chkconfig --list

    注:该输出结果只显示 SysV 服务,并不包含

    原生 systemd 服务。SysV 配置数据

    可能被原生 systemd 配置覆盖。 

          要列出 systemd 服务,请执行 'systemctl list-unit-files'。

          查看在具体 target 启用的服务请执行

          'systemctl list-dependencies [target]'。

    netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

    network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

     

    系统7个运行级别0~6

    0级别 关机状态

    1级别 单用户

    2级别 多用户模式不带图形不带nfs服务

    3级别 多用户模式不带图形

    4级别 保留

    5级别 多用户带图形

    6级别 重启状态

    服务启动脚本存储在:/etc/init.d/

    [root@centos7 ~]# ls /etc/init.d/

    functions  netconsole  network  README

    关闭服务:systemctl network off

    开启服务:systemctl network on

     

     

    /etc/inittab 不再使用

     

     

    network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

    指定3级别关闭

    chkconfig  --level 3 network  off

    指定345级别关闭

    chkconfig  --level 345 network off

     

    cd /etc/init.d/

    自定义一个脚本 cp network 123

    添加到服务

    chkconfig  --add 123

    删除服务

    chkconfig  --del  123

     

     

    systemd管理服务

    查看所有的服务

    [root@centos7 ~]# systemctl list-unit-files 

     

     

    列出所有的服务service,包括描述信息

    systemctl  list-units --all --type=service

     

     

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

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

    systemctl enable crond (.service可以省略)

     

    systemctl disable crond  //不让开启启动

     

    [root@centos7 ~]# systemctl is-enabled crond.service 

    enabled

    [root@centos7 ~]# systemctl disable crond.service 

    Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

    [root@centos7 ~]# systemctl is-enabled crond.service 

    disabled

     

    [root@centos7 ~]# systemctl enable crond.service 

    Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.

     

    Created symlink 创建软连接

     

     

    生成软连接

    [root@centos7 ~]# ls -l /etc/systemd/system/multi-user.target.wants/crond.service 

    lrwxrwxrwx 1 root root 37 1月  27 12:45 /etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/crond.service

     

    disable 会把软连接remove

     

    [root@centos7 ~]# systemctl disable crond.service 

    Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

     

     

    systemctl status crond //查看状态

    systemctl stop crond //停止服务

    systemctl start crond //启动服务

    systemctl restart crond //重启服务

     

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

     

     

     

    linux系统服务管理-systemd unit介绍

     

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

     

    service系统服务

     

    tartget 多个unit组成的组

     

    [root@centos7 systemd]# cd /usr/lib/systemd/system

    [root@centos7 system]# ls -l runlevel*

     

    7个运行级别 target

    lrwxrwxrwx. 1 root root 15 12月 19 05:49 runlevel0.target -> poweroff.target

    lrwxrwxrwx. 1 root root 13 12月 19 05:49 runlevel1.target -> rescue.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel2.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel3.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel4.target -> multi-user.target

    lrwxrwxrwx. 1 root root 16 12月 19 05:49 runlevel5.target -> graphical.target

    lrwxrwxrwx. 1 root root 13 12月 19 05:49 runlevel6.target -> reboot.target

     

     

     

    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-unit --type=service //列出状态为active的service

     

    systemctl is-active crond.service  //查看某个服务示范为active]

    systemctl is-enable crond.service //查看服务是否开启

     

     

    target 

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

     

    一个target 由多个unit组成。

    列出系统里面所有的target

    systemctl list-unit-files --type=target

     

     

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

    大多数是service

     

     

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

    systemctl set-default multi-user.target  //设置默认的多用户target

     

     

    一个service属于一种类型的unit

    多个unit组成了一个target

    一个target里面包含了多个service

     

     

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

    sshd.service 属于multi-user.target

    [Install]

    WantedBy=multi-user.target

     

  • 相关阅读:
    kettle的使用(ETL,数据仓库技术)
    最近工作用到压缩,写一个zip压缩工具类
    JAVA 7新特性——在单个catch代码块中捕获多个异常,以及用升级版的类型检查重新抛出异常
    JAVA反射机制
    guava的使用
    web项目中无法开启或404
    关于request.getServletContext()方法报错的问题
    使用U盘给笔记本重做系统
    sed速查手册
    awk速查手册
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/8383403.html
Copyright © 2020-2023  润新知