热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux环境定时执行shell脚本crontab

需要对本地的某些程序做自动备份,定时为每天7点进行备份,使用crontab命令实现。1、crontab-e直接输入命令crontab-e会直接打开一个编辑器窗口,一般为vi,直接

需要对本地的某些程序做自动备份,定时为每天7点进行备份,使用crontab命令实现。

1、crontab -e

直接输入命令crontab -e会直接打开一个编辑器窗口,一般为vi,直接在编辑器中写入:

# m h  dom mon dow   comman
0 7 * * * /root/user/backup.sh

编辑保存命令与vi的一致。

保存后有些人说需要重启cron,但是我好像不需要重启:service cron restart

前面五个值分别为分、时、日、月、周,百度可以搜到很多用法,基本用法有:

m:0-59,*表示每分钟执行一次,*/5表示每隔5分钟执行一次;

h:0-23,*表示每小时执行一次;

d:1-31,*表示每天执行一次:

m:1-12,*表示每个月执行一次;

w:0-6,0为星期天,*表示每星期执行一次;

每分钟执行一次只需要五个*,输入* * * * * command

上述的意思就是每天的7点钟开始执行,执行时间可能会有一点偏差,但是不会偏差很大。

参考:https://www.jb51.net/LINUXjishu/19905.html

查看目前拥有的定时任务:crontab -l

删除所有的定时任务:crontab -r

只需要删除一个任务需要使用crontab -e进行编辑。

2、vi /etc/crontab

还有一种方式是直接编辑crontab,总感觉这个方法会比较靠谱,使用方法与crontab -e差不多,但是多了一个user的字段:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

与上一个命令一样,在其他系统定时任务后面新加一条命令即可:

0  7   * * *   root   /root/user/backup.sh

保存退出。

参考:http://www.cnblogs.com/xd502djj/p/4292781.html

ps:可以先使用* * * * *来确认定时是否可用,在定时任务的脚本中,需要先cd到一个确定的目录,之前尝试的时候一直看不到效果,原因是他不会将脚本所在的位置当做当前path,默认path是/root

我测试时的脚本,可参考:

crontab -e:

* * * * * /root/user/test.sh

vi /etc/crontab:

*  *    * * *   root    /root/user/test.sh

test.sh:

cd /root/user
DATE=$(date +"%y-%m-%d_%H:%M:%S")
mkdir $DATE


推荐阅读
  • 服务器上的nginx使用logrotate来分割日志,设置为每天分割。但是logrotate似乎没有工作,日志并没有分割。服务器是CentOS6。为了找到原因 ... [详细]
  • 前言crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 用.sh文件来完成任务,但现在有个项目直接用url就行。一般系统不会有crontabShell#安装crontab:yuminstallcronta ... [详细]
  • 1crond服务未启动crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 想到一个问题,如果在crontab里有个定时任务设置为一分钟执行一次,但是它执行的时间可能会超过一分钟,此时crontab一分钟后会再次运行该脚本吗?这样会不会出现冲突呢?网上找了下,说可以用Linu ... [详细]
  • 启动服务#servicecrondstart或者#etcinit.dcrondstart格式:*  *  *  *  *  command分 时 日 月 周  ... [详细]
  • 关于定时执行一个PHP文件办法,该如何解决
    后端开发|php教程crontab,windows,PHP,schedule,7302763后端开发-php教程关于定时执行一个PHP文件的方法简搜源码,ubuntu找不到域名,启 ... [详细]
author-avatar
手机用户2502896757
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有