• linux周期性计划任务 进程管理


    周期性计划任务
    crontab命令
    系统服务:/etc/init.d/crond(crond必须启动才会生效)
    用户计划:/var/spool/cron/用户名
    默认的计划任务
    全局配置:/etc/crontab
    系统计划:/etc/cron.hourly/*(每小时要执行)
    /etc/cron.daily/*(每天要执行)
    /etc/cron.weekly/*(每星期要执行)
    /etc/cron.monthly/*(每月要执行)
    [root@xiaoxiong 桌面]# rpm -qa | grep cron(查看是否安装了这个服务)
    crontabs-1.10-33.el6.noarch
    cronie-anacron-1.4.4-15.el6.x86_64
    cronie-1.4.4-15.el6.x86_64
    [root@xiaoxiong 桌面]# /etc/init.d/crond status(查看这个服务是否运行)
    crond (pid 2715) 正在运行...
    [root@xiaoxiong 桌面]# chkconfig crond --list
    crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
    [root@xiaoxiong 桌面]# ls /etc/cron.hourly/(每小时要执行的脚本)
    0anacron mcelog.cron
    [root@xiaoxiong 桌面]# ls /etc/cron.daily/(每天要执行的脚本)
    cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
    [root@xiaoxiong 桌面]# ls /etc/cron.weekly/(每星期要执行的脚本)
    [root@xiaoxiong 桌面]# ls /etc/cron.monthly/(每月要执行的脚本)
    readahead-monthly.cron

    [root@xiaoxiong 桌面]# vim /etc/crontab (主配置文件)
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/

    # 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
    *:匹配范围内任意时间
    ,:表示多个不连续的时间点
    -:表示连续的时间范围
    /n:指定时间频率,每n...
    记录格式
    执行周期,可执行语句
    分钟 小时 日期 月份 星期 可执行语句
    执行周期 设置说明
    分钟 从0到59之间的数
    小时 从0到23之间的数
    日期 从1到31之间的数
    月份 从1到12之间的数
    星期 0-7之间的整数,0或7代表星期日

    执行周期示列:
    0 17 * * 1-5 周一到周五每天17:00
    30 8 * * 1,3,5 每周一,周三,周五的8:30
    0 8-18/2 * * * 8点到18点之间没2小时
    0 0 */3 * * 每三天的0点

    crontab命令格式:
    编辑cron计划任务
    格式:crontab -e [-u 用户名]
    查看cron计划任务
    格式:crontab -l [-u 用户名]
    删除crontab计划任务
    格式:crontab -r [-u 用户名]

    [root@xiaoxiong 桌面]# crontab -e(编辑计划任务)
    30 7 * * * /etc/init.d/sshd start(每7:30开启)
    30 23 * * * /etc/init.d/sshd stop(每23:30开启)
    [root@xiaoxiong 桌面]# crontab -l(查看计划任务)
    30 7 * * * /etc/init.d/sshd start
    30 23 * * * /etc/init.d/sshd stop
    [root@xiaoxiong 桌面]# crontab -r(删除计划任务,这个不好用,不可以删除单条)

    计划任务的授权
    cron任务控制
    /etc/cron.allow /etc/cron.deny
    [root@xiaoxiong 桌面]# ls /etc/cron.allow /etc/cron.deny
    ls: 无法访问/etc/cron.allow: 没有那个文件或目录
    /etc/cron.deny
    如果allow文件存在,则允许指定的用户
    否则检查deny文件,除指定用户外其余都允许
    如果两个文件都不存在,则只允许root使用

    计划任务中断与补救
    anacron延时补救
    任务周期:每小时检查一次,最近x天以内的任务
    由crond服务调度检查,执行被错过的任务操作
    [root@xiaoxiong 桌面]# rpm -ql cronie-anacron | grep etc
    /etc/anacrontab (全局配置)
    /etc/cron.hourly/0anacron(检查任务的脚本)
    [root@xiaoxiong 桌面]# tail -3 /etc/anacrontab (anacreon主配置文件)
    1 5 cron.daily nice run-parts /etc/cron.daily
    7 25 cron.weekly nice run-parts /etc/cron.weekly
    @monthly 45 cron.monthly nice run-parts /etc/cron.monthly

    ——————————————————————————————————————————————————————
    进程管理
    程序:保存在磁盘中的可执行文件,是静态保存的代码
    进程:在CPU及内存中运行的程序指令,是动态的执行代码,进程可以创建一个或者多个子进程(父/子进程)
    查看进程树
    pstree命令
    格式:pstree [选项] [PID或用户名]
    常用命令选项
    -a:显示完整的命令行
    -u:列出各进程所属的用户名
    -p:列出对应的PID号
    [root@xiaoxiong ~]# pstree -aup xx01
    bash,5905
    └─vim,5930
    查看进程快照
    ps命令
    格式:ps [选项]
    常用命令选项
    -a:显示当前终端下的所有进程
    -u:使用以用户为主的格式输出信息
    -x:显示当前用户在所以终端下的进程
    -e:显示系统内所有的进程
    -l:使用长格式输出信息
    -f:以最完整的格式输出信息
    [root@xiaoxiong ~]# ps aux(详细度高,列出正在运行的所有进程)
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.1 19364 1540 ? Ss 17:16 0:03 /sbin/init
    root 2 0.0 0.0 0 0 ? S 17:16 0:00 [kthreadd]
    ..... ....
    [root@xiaoxiong ~]# ps -elf(详细度低,列出正在运行的所有进程)
    F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
    4 S root 1 0 0 80 0 - 4841 poll_s 17:16 ? 00:00:03 /sbin/init
    1 S root 2 0 0 80 0 - 0 kthrea 17:16 ? 00:00:00 [kthreadd]
    ..... ....
    STAT列,体现进程的状态
    -R:正在运行
    -S:处于休眠状态,在需要是可唤醒
    -D:不可中断的休眠,通常为等待I/O(读写)的情况
    -T:停止状态
    -Z:僵尸状态,程序已经终止,但占用的内存未被释放

    进程动态排名
    top交互式工具
    格式:top [-d刷新秒数] [-U 用户名](刷新秒数缺省为3秒)
    [root@xiaoxiong 桌面]# top -d5(每5秒刷新一次)

    top - 22:40:38 up 5:23, 2 users, load average: 0.02, 0.02, 0.00
    Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
    Cpu(s): 3.6%us, 0.4%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 1004768k total, 852424k used, 152344k free, 69264k buffers
    Swap: 5054460k total, 0k used, 5054460k free, 365344k cached

    检索进程信息
    pgrep命令
    用途:pgrep [选项] 查询条件
    常用命令选项
    -l:输出进程名,不仅是PID
    -U:检索指定用户的进程
    -t:检索指定终端的进程
    [root@xiaoxiong 桌面]# pgrep -l net
    13 netns
    2498 xinetd

    进程前后台调度
    前台启动:输入正常的命令行,运行期间占用当前终端
    后台启动:在命令行末尾添加&符号,运行期间不占用当前终端
    ctrl+z组合键:挂起当前进程(暂停并转入后台)
    jobs命令:查看后台任务列表
    fg命令:将后台任务恢复到前台运行
    bg命令:激活后台被挂起的任务
    (fg,bg命令未指定序号时,缺省为最近的1个任务)

    终止进程
    ctrl+c组合键
    kill,killall命令
    kill PID号,killall进程名
    选线-9表示强制终止
    pkill命令:杀死符合指定条件的进程,用法与pgrep相似
    [root@xiaoxiong 桌面]# killall sleep
    [1]- 已终止 sleep 900
    [2]+ 已终止 sleep 900

    ————————————————————————————————————————
    linux启动流程
    加载BIOS,检查硬件信息
    读取并执行第一个开机设备内MBR的boot Loader
    运行grub引导加载kernel
    内核启动/sbin/init程序
    init系统初始化
    确定默认的运行级别
    触发runleve事件,运行/etc/rc.d/rc
    最后执行/etc/rc.local
    加载终端或X-Windows接口

    ————————————————————————————————————

  • 相关阅读:
    Node.js的安装与配置【转载】
    The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector【端口号被占用】
    MVC登陆认证简单设置
    Winform无边框窗体拖动
    Winform截图小程序
    C#Winform实时更新数据库信息Demo(使用Scoket)
    记DateTime.Now.ToString()遇到的一个坑
    T4模板的一些配置(从EF数据更新)
    设计模式之策略模式
    打造高效的研发组织架构:高效研发流程那些事(一)——读《技术领导力实战笔记》摘要
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/6994972.html
Copyright © 2020-2023  润新知