Linux crontab 任务误删恢复及备份步骤

crontab任务误删恢复及备份步骤

日常运维管理中,我们可能会碰到各种奇葩的问题,当然也包括误操作。比如使用 crontab -e 命令执行编辑定时任务时,由于手抖或键盘舒适度(不失礼貌的笑脸)等问题,
误写成 crontab -r 。是的,你没看错,该账户下的 crontab 任务被清空。下面我们将进行 crontab 任务的恢复和备份操作。

说明??:

crontab -r :-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

crontab 任务的恢复

经查,CentOS 系统的 crontab 任务的日志,打印在 /var/log/cron 之中。考虑过滤日志:

cat /var/log/cron* | grep -i "某个用户" | grep "CMD" | awk -F ‘(‘ ‘{print $3}‘ | awk -F ‘)‘ ‘{print $1}‘ | sort -u > crontab_tmp

说明??:

  • grep -i "某个用户" :是为了过滤某个用户的信息。比如你在test这个账户下误操作“crontab -r”删除当前用户的crontab文件,那么你可以使用 grep -i "test" 过滤test账户使用的
    命令。
  • 后续根据提取出来的命令再去 /var/log/cron文件中确认一下时间间隔,按照指定的方式恢复至/var/spool/cron/。

crontab 任务的备份

说明??:每天早上七点对crontab 进行备份 ,同时删除7天前的数据

脚本如下:

backup_crontab.sh

#!/usr/bin/env bash

BACKUP_DIRECTORY="${HOME}/crontab_backup"

if [ ! -e "${BACKUP_DIRECTORY}" ]; then
        mkdir -p ${BACKUP_DIRECTORY}
fi

crontab -l > ${BACKUP_DIRECTORY}/$(date ‘+%Y%m%d‘).txt
find ${HOME}/crontab_backup -mtime +7 -name ‘*.txt‘ -exec rm -rf {};

把上面的脚本放在 crontab 定时任务中执行:

## backup_crontab
0 7 * * * cd /data/siterecoffline && sh backup_crontab.sh

原文地址:http://blog.51cto.com/wutengfei/2287467

时间: 2024-07-31 17:23:41

Linux crontab 任务误删恢复及备份步骤的相关文章

oracle11g 数据文件误删恢复(无备份)

OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 首先创建yoon数据库 SQL> create tablespace yoon datafile '/u01/oracle/oradata/yoon/yoon01.dbf' size 50m; Tablespace created. SQL> create use

Linux误删恢复

作为一个多用户.多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的.尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据.不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的.  1.Ext2文件系统结构的简单介绍 在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个 块的大小是1K,不同的块以块号区分.每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息.对于

linux crontab 命令

Linux 系统提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日

php 执行计划任务方式之 linux crontab 执行命令

一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调

linux下用tar进行数据备份

本机上数据的手工备份 Linux系统上配有功能强大的tar命令,可以灵活地备份数据. tar最初是为了制作磁带备份而设计的把文件和目录备份到磁带中,然后从磁带中提取或恢复文件. 当然,现在我们可以使用tar来备份数据到任何存储介质上. tar非常易于使用稳定可靠,而且在任何 Linux系统上都有这个命令.因此是最经常使用的备份工具. 1.使用tar命令备份数据的格式如下: 上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar. cvf是tar的命令参数. c代表

Linux crontab的解读和使用

linux 定时执行crontab  crontab -e 进入一个vi 编辑界面 在最后一行加上 */30 * * * * netstat > /tmp/net.log 表示每隔30分就执行netstat命令,并把执行结果存入net.log中. Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它, cron服务

linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa

Linux下定时任务实现mysql自动备份并上传远程ftp

Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_datacd /homemkdir mysql_data2.创建备份脚本文件:/home/mysql_data/mysql_databak.shcd /homecd  mysql_datatouch mysql_databak.shvim  mysql_databak.sh #!/bin/sh DUMP=/usr/bin/mysqldump#mysqldump备份文件执行路径 OUT_

烂泥:通过binlog恢复mysql备份之前的数据

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章,我们讲解了如何通过mysql的binlog日志恢复mysql数据库,文章连接为<烂泥:通过binlog恢复mysql数据库>.其中我们提到了的备份数据库要晚与要恢复的数据库时间,即要恢复的数据库在前,而备份的数据库在后. 当时我提到说会单独写一篇文章讲解这个情况,本篇文章我就来介绍如何通过binlog日志恢复比备份数据库早时的数据库状态.我们还是以上篇文章的数据及备份文件为基础,来进行本篇文章的讲解. ailanni数据库完整备份时,