`

【Linux基础篇】crontab命令调度

 
阅读更多

crontab命令进行任务调度,自动执行一些脚本,完成特定任务。

如,启动app,日志拷贝等

每个用户都有自己的调度crontab

vi /etc/crontab

 

crontab的初始内容:

SHELL=/bin/bash

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

MAILTO=root

HOME=/

 

#run-parts

01   *  *  *  *    root run-parts /etc/cron.hourly

02  4  *  *  *    root run-parts /etc/cron.daily

22  4  *  *  0   root run-parts /etc/cron.weekly

42  4  1  *  *   root run-parts /etc/cron.monthly 

 

* * * * *  用户名  可执行命令

* 分别代表  “分钟(0~59)、小时(0~23)、日期(1~31)、月份(1~12)、星期(0~6)”

例如:

* * * * *   #表示每分钟执行1次任务

1 * * * *  #表示当每小时的第1分钟时执行1次任务

2 12 * * *  #表示每天的12点第2分时执行1次任务(每天12:02)

0-59/2  * * * *  #表示每2分钟执行1次任务

 

 

实例一

1、在下午4:50删除abc目录下全部子目录和文件

2、从早8:00到下午6:00每小时读取/xyz目录下x1文件中每行第1个域的全部数据到/backup目录下的bak01.txt文件内

3、每个星期一下午5:50将/data目录下所有目录和文件归档压缩为文件backup.tar.gz

4、在下午5:55将IDE接口的CD-ROM卸载(假设CD-ROM的设备名为hdc)

5、在早晨8:00前开机后启动

 

可以在/etc/crontab文件中加入以下命令:

50 16 * * * rm -rf /abc/*

* 8-18/1 * * *  cut -f1 /xyz/x1 >;>; /backup/bak01.txt

50 17 * * * tar czvf backup.tar.gz /data

55 17 * * * unmount /dev/hdc

第5点,需要在8:00前开机,之后Shell自动运行crontab

 

 

实例二

系统管理员在每月第1天备份并压缩/var目录的所有内容

存放在/root/bak目录中

且文件名形式为yymmdd_var

其中,yy为年,mm为月,dd为日

 

因此,可以编写1个脚本完成备份功能,然后在crontab设置每天执行该脚本来达到目的

备份文件的脚本命名为planback.sh

 

#!/bin/bash

DIRNAME=`ls /root | grep bak`  #获取 /root/bak 字符串

if [ -z "$DIRNAME" ]; then  #如果 /root/bak 不存在,则创建

mkdir /root/bak

cd /root/bak

fi

 

#获取年、月、日

YY=`date +%y`

MM=`date +%m`

DD=`date +%d`

 

BACKVAR=$YY$MM$DD_var.tar.gz  #设置备份文件的名称

tar -zcvf $BACKVAR /var                    #将/var目录进行打包并压缩

echo "/var backup finished!"

 

然后,在crontab中配置脚本执行时间

0 1 * * *  /bin/bash   /usr/bin/planback.sh  #每天凌晨1点执行planback.sh脚本

 

========================================================================

当Linux用户登录时,Shell会自动执行.bash_profile文件

而.bash_profile文件会调用.bashrc脚本,因此,在.bashrc中调用我们自己写的脚本即可让某些脚本在用户登录后自动得到执行。如,Shell会自动配置当前用户的PATH环境变量。

但是,要想执行定时任务,还得靠crontab来完成!

 

.bash_profile

#!/bin/bash

if [ -f ~/.bashrc ]; then

. ~/.bashrc  #执行宿主目录下的bashrc脚本

fi

 

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

 

.bashrc

# .bashrc

alias rm="rm -i"

alias cp="cp -i"

alias mv="mv -i"

 

if [ -f /etc/bashrc ]; then

. /etc/bashrc  #执行/etc/bashrc脚本

fi

 

 

 

分享到:
评论

相关推荐

    【PDF版本】老男孩教育Linux高端运维及云计算架构师-就业班20170513V9.pdf

    - **Linux定时任务**:学会使用crontab等工具实现任务调度。 - **用户管理**:掌握用户账户的创建、删除、修改权限等操作。 - **磁盘与文件系统**:了解Linux下的磁盘管理和文件系统类型。 - **sed命令**:学习使用...

    unix C语言crontab、makefile资料

    crontab是一个Unix系统中的任务调度命令,用于设置周期性被执行的任务。它允许用户按照时间间隔定义任务,比如定时运行脚本、备份数据或执行系统维护等。crontab文件由一系列的规则组成,每个规则包含时间字段和要...

    Linux私房菜基础学习篇(第三版) .pdf

    总的来说,《Linux私房菜基础学习篇(第三版)》为读者提供了一个全面的Linux基础知识体系,从基础命令的使用到系统的深入配置,再到用户权限管理和系统安全设置,本书均有详细覆盖。对于希望学习Linux操作系统的...

    《鸟哥的Linux私房菜》基础篇-知识整理-读后感

    第十五章讨论了例行性工作调度(crontab),使读者能够设置定时任务,自动化日常维护工作。 通过以上内容的学习,读者将具备扎实的Linux基础,能有效管理Linux主机,架设和维护网站,从而达到事半功倍的效果。在...

    linux服务器命令用法笔记

    本篇笔记主要针对Linux服务器中的常用命令及用法进行了详尽的总结,旨在帮助初学者快速上手,并为有一定经验的用户提供参考。 1. **基础命令** - `ls`:列出目录内容,通过`-l`选项可显示详细信息。 - `cd`:切换...

    linux命令大全和解析.pdf

    本篇文章将详细解析Linux的基本命令,帮助初学者快速上手。 1. **登录与注销** Linux启动后,用户需要通过`login`命令输入用户名和密码来登录系统。默认的系统管理员账号通常是`root`。登录成功后,系统会显示一个...

    linux命令参考大全

    本篇文章将详细讲解Linux命令,这些命令是Linux系统中的核心元素,也是用户与操作系统交互的主要方式。我们主要参考的是"linux命令参考大全"这份文档,特别是其中的英文命令参考手册部分。 1. **基础命令** - `ls`...

    Linux开发技术

    14. **Crontab详解**:介绍了Linux的任务调度工具Crontab,如何设置定时任务。 15. **进程管理**:讲解了如何查看和控制Linux系统中的进程,包括进程状态和调度。 16. **Top详解与网络监控**:深入解析了`top`命令...

    鸟个的linux私房菜

    标题“鸟个的linux私房菜”和描述表明了本文档旨在为初学者提供Linux基础知识和学习资源。Linux是开源操作系统的核心,其哲学基于Unix,由林纳斯·托瓦兹于1991年首次发布,历经多年发展已成为最广泛使用的操作系统...

    Linux私房菜第三版

    《Linux私房菜第三版》是一本面向Linux初学者的实用教材,它涵盖了Linux操作系统的基本命令和基础知识,适合于希望打下坚实Linux操作基础的读者。本书在编写过程中注重内容的实用性和易读性,通过各种实例和速查表...

    Linux+指令篇[借鉴].pdf

    【Linux指令篇】是针对操作系统Linux的一系列基础和高级命令的详细介绍,这些指令在软件开发中扮演着至关重要的角色,因为它们是Linux系统的基石,帮助用户有效地管理和操作系统。以下是一些关键指令的概述: **DOS...

    LINUX循序渐进

    7. **进程管理和任务调度**:掌握`ps`、`kill`、`nohup`等命令来管理和控制进程,以及如何使用`crontab`进行定时任务设置。 8. **系统日志和故障排查**:理解`dmesg`、`/var/log`目录下的日志文件,以及如何利用...

    Linux实用培训学习教程1.0

    9. **进程管理和任务调度**:了解`ps`, `top`, `kill`等命令用于监控和控制进程,以及如何使用`crontab`设置定期任务。 10. **系统日志和故障排查**:学习查看和分析系统日志(如`/var/log`下的日志文件),并利用...

    Linux 系统的使用说明书.doc

    本篇文档主要涵盖了Linux系统的基本使用、安装、配置以及一些常用命令和工具的使用。 1. **系统安装**: Linux系统的安装通常需要多张光盘或者一个ISO镜像文件。在旧的安装方式中,可能会使用三张光盘来完成整个...

    shell基础十二篇

    3. **后台操作**:`crontab`用于设置定时任务,`at`则用于一次性调度未来某个时间执行的任务。`&`用于将命令放到后台执行,`nohup`确保命令在用户退出终端后继续运行。 4. **输入/输出**:`echo`用于打印文本,`...

    鸟哥Linux私房菜

    #### 基础学习篇快速索引 本章节提供了Linux命令的快速查找表,帮助初学者快速定位到特定的命令及其使用方法。 ##### 指令与用语速查表 1. **ACL(Access Control List)**:位于第十四章第3.1节。ACL用于扩展...

    Linux运维趋势_第03期_运维与开发

    - **Crontab使用心得**:分享了在Linux环境下如何有效利用定时任务调度工具Crontab。 - **Shell学习笔记——总括篇**:总结了Shell脚本的基础知识和进阶技巧。 - **25个必须记住的SSH命令**:列举了运维工作中常用的...

Global site tag (gtag.js) - Google Analytics