`

bash编程之 crontab 定时任务

 
阅读更多

crontab  定时任务

# 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

 

*/5 * * * *   bash脚本名   每5分钟执行

0   2  * * *  bash脚本名   每天凌晨2点执行

0   2  7 * *  bash脚本名   每月7号凌晨2点执行

注: day of month + month 与 day of week  不同时使用

 

crontab命令:

-l: 显示当前用户的任务列表

-l -u username  显示其它用户的任务列表

-e:编辑任务

-r: 移除所有任务

 

练习.:每周2,4,7备份/var/log/messages文件至/backup/messages/目录中,文件名保存为形如messages-2017-03-27.tar.xz

0  0  *  *  2,4,7  /bin/cp -a /var/log/messages   backup/messages/messages-`/bin/date "+%Y-%m-%d"`

 

案例:重定向rm命令,使被删除的文件移动到recycle_bin目录。再写一个定时任务每天删除recycle_bin目录中7天前的文件

1. 添加文件/usr/local/recycle_bin/recycle_bin.sh

#!/bin/bash
count=0
dir=/tmp
if [ -d /tmp/recycle_bin ];then
	dir=/tmp/recycle_bin/`date +%F-%H-%M-%S`
	mkdir -p $dir
	for i in $*;do
		count=`echo $i|grep "^-"|wc -l`
		if [ $count -ne 1 ];then
			mv $i $dir
		else
			count=0
		fi
	done	 
else
	mkdir -p /tmp/recycle_bin 
        dir=/tmp/recycle_bin/`date +%F-%H-%M-%S`
        mkdir -p $dir
        for i in $*;do
                count=`echo $i|grep "^-"|wc -l`
                if [ $count -ne 1 ];then
                        mv $i $dir
                else
                        count=0
                fi
        done
fi

 

2. 重定向rm命令

 修改~/.bashrc, 如有要对所有用户生效就修改/etc/.bashrc 

 alias rm='rm -i' 改为:

 alias rm='/usr/local/recycle_bin/recycle_bin.sh'

 resource ~/.bashrc 

 

3. 添加文件/usr/local/recycle_bin/clear_recycle_bin.sh

#!/bin/bash
clear_dir=/tmp/recycle_bin/`date -d "7 day ago" +"%Y-%m-%d"`*
#clear_dir=/tmp/recycle_bin/`date %Y-%m-%d`*
/bin/rm -rf $clear_dir

 

4.添加定时任务

crontab -e 

30 11 */1 * * /usr/local/recycle_bin/clear_recycle_bin.sh

 

 

 

分享到:
评论

相关推荐

    定时任务脚本制作

    - **Crontab命令**:通过`crontab -e`命令可以编辑用户的个人定时任务,这些任务将在用户上下文中运行。 2. **Windows下的Task Scheduler** - **配置界面**:Task Scheduler有一个图形化界面,可以直接创建、编辑...

    Python + selenium + crontab实现每日定时自动打卡功能

    ### Python + Selenium + Crontab 实现每日定时自动打卡功能 #### 一、背景与目的 随着技术的发展,自动化工具的应用越来越广泛。特别是在日常的工作学习中,自动化可以帮助我们减轻重复劳动的压力,提高效率。...

    定时任务(卸数,上传数据)

    2. **Linux cron**:cron是Linux系统下的时间计划任务工具,通过编写crontab文件,设置任务执行的分钟、小时、日期、月份和星期,实现定时执行。 3. **Windows Task Scheduler**:Windows系统中的任务计划程序允许...

    shell demo及编程pdf

    4. **定时任务**:利用`crontab`进行周期性任务的调度。 5. **自动化脚本**:例如,自动化备份、软件安装、数据迁移等任务。 6. **文本处理**:使用正则表达式和命令如`grep`, `sed`, `awk`进行文本搜索、替换和...

    Linux上网共享的定时开通

    文章还详细介绍了如何使用 crontab 命令和 bash 编程来实现定时任务,并提供了具体的实现代码。 知识点一: Linux 代理服务器实现 ADSL 上网共享 * 使用 Linux 代理服务器可以实现 ADSL 上网共享,控制上网时长和...

    crontab格式解析cpp源码

    `crontab` 文件的格式是用于定义定时任务的关键,它的结构由五个字段组成,分别代表分钟(0-59)、小时(0-23)、日期(1-31)、月份中的日期(1-12)和星期(0-7,其中0和7都代表周日)。每个字段可以是一个具体的...

    定时启动程序

    8. **脚本编程**:对于有一定编程基础的用户,可以使用脚本语言(如Python、Bash等)编写定时任务,实现更复杂的功能,如循环执行、条件判断等。 9. **安全与权限**:设置定时任务时,必须考虑到安全性和权限问题。...

    linux下使用crontab实现定时PHP计划任务失败的原因分析

    在Linux系统中,`crontab` 是一个强大的定时任务管理工具,用于自动化日常或周期性的任务。然而,很多开发者在尝试使用 `crontab` 执行PHP脚本时会遇到一些问题,尤其是在生成缓存文件时。本文将深入探讨在Linux环境...

    celery+ rabbitMq + python linux 下 例子 crontab例子

    标题 "celery+ rabbitMq + python linux 下 例子 crontab例子" 涉及的是在Linux环境下使用Python的Celery分布式任务队列和RabbitMQ消息中间件结合使用,以及如何配合crontab进行定时任务的设置。下面将详细讲解这些...

    linux-用shell编程调度的实验报告.doc

    本实验报告旨在介绍如何使用 Linux shell 编程实现自动备份数据的任务,并使用 crontab 实现自动调度。实验的主要目的是掌握 Linux 系统的 Shell 编程和定时调度任务的方法。 一、实验目的 本实验的目的是掌握 ...

    Shell脚本编程100例

    `crontab -e`编辑cron定时任务,例子中每周五3点进行日志备份。 4. **一键部署LNMP**:`yum`是包管理器,用于安装和管理软件包。这里使用它安装部署LNMP(Linux, Nginx, MySQL, PHP)环境,并启动服务并使其开机...

    定时开起和关闭酷狗或其它程进程

    在Linux上,编辑`crontab -e`来添加定时任务,如: ```bash 0 20 * * * /path/to/your/script.sh ``` 这里的`script.sh`是用shell脚本编写的,用于关闭酷狗进程(例如使用`pkill`或`killall`命令)。 除了系统...

    Linux Shell程序设计 实验四

    【Linux Shell程序设计 实验四】的实验主要涵盖了三个核心知识点:硬盘分区管理、文件系统创建与挂载、以及Linux定时任务(crontab)的配置。这些是Linux系统管理中的基础技能,对于理解操作系统底层运作和自动化...

    Linux环境使用crontab命令设置定时周期性执行任务【含php执行代码】

    通过 `crontab`,你可以自动化日常维护工作,如数据备份、日志清理以及定时运行PHP等编程语言编写的程序。 `crontab` 的基本用法包括以下几个参数: - `-u username`:指定另一个用户来操作其定时任务。 - `-e`:...

    Java编写的linux下定时通过ftp上传文件

    在终端中,使用`crontab -e`命令编辑定时任务文件。 - 添加一条定时任务,例如每小时执行一次Java程序: ``` 0 * * * * java -jar /path/to/your/app.jar ``` 这里的`/path/to/your/app.jar`应替换为实际的Java...

    定时循环监控脚本

    在IT领域,定时循环监控脚本是一种非常实用的技术,它能够定期执行特定的任务,比如检查系统状态、收集数据、执行备份或更新等。这样的脚本通常由批处理(BAT)文件或其他脚本语言(如bash、Python等)编写,根据...

    LINUX与UNIX SHELL编程指南.rar

    总结一下,Linux与Unix Shell编程涵盖了编写Shell脚本、使用awk进行文本处理、利用sed进行文本流编辑、通过grep搜索特定模式、用find查找文件,以及通过crontab设置定时任务等多个方面。熟练掌握这些工具和技巧,将...

    linux-一个提醒你喝水的zshbash脚本

    总结一下,这个"提醒喝水"的zsh/bash脚本利用了Linux的定时任务和命令行交互能力,通过简单的编程逻辑实现了健康生活的小提示。学习和使用这样的脚本,可以让我们更好地掌握Linux系统的自动化操作,同时也能提醒我们...

    java程序打成jar包,并在windows和linux下定时执行

    在Linux系统中,可以使用`crontab`实现定时任务。首先,打开终端,输入`crontab -e`编辑定时任务。假设你想每天凌晨1点执行jar包,添加以下行: ```bash 0 1 * * * /usr/bin/java -jar /path/to/dbtodb.jar ``` 这...

Global site tag (gtag.js) - Google Analytics