Linux命令 - crontab命令 和 rsync命令
Table of Contents
1. crontab命令
参考链接:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
1.1 crond简介
是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。当安装完操作系统后,默认会安装此服务工具,并且会自动启动crond进程。crond进程会每分钟定期检查是否有要执行的任务,如果有的话,则自动执行该任务。
Linux下的任务调度分为两类:系统任务调度和用户任务调度
- 系统任务调度:系统周期性要执行的工作
- /etc/crontab,就是系统调度任务的配置文件
- 用户任务调度:用户定期要执行的工作,比如用户数据备份,定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
- /etc/cron.deny: 文件中所列用户不允许使用crontab命令
- /etc/cron.allow: 文件中所列用户允许使用crontab命令
- /var/spool/cron/: 所有用户的crontab文件存放的目录,以用户命名
crontab文件的含义:
用户创建的crontab文件,每一行代表一项任务,每行的每个字段代表一项设置,格式共分为6个字段,前5个是时间设置段,第6个是命令段:
Minute hour day month week command
minute:分钟,0~59任何数字
hour:小时,0~23任何数字
day:日期,1~31任何数字
month:月 1~12任何数字
week:星期几,0~7任何数字 这里0和7代表星期日
command:要执行的命令,可以使系统命令 也可以是自己编写的脚本文件
以上各字段 可以使用一下特殊字符:
*: 代表所有可能的值
,:可以用逗号隔开的值指定一个列表范围
-:可以用整数之间的中杠表示一个整数范围,例如 “2-6”表示“2,3,4,5,6”
/: 可以用正斜线之低昂时间的间隔频率 例如 “0-23/2”表示每两个小时执行一次 同时正斜线也可以和*一起使用
1.2 crond服务
1.3 crond命令详解
- 命令格式
crontab [-u user] file
Crontab [-u user] [-e| -| |-r]
- 命令功能:通过crontab命令,可以再固定的间隔时间执行指定的系统命令或者shell script脚本。
2. rsync命令
A fast, versatile, remote (and local) file-copying tool.
参考链接: http://www.cnblogs.com/f-ck-need-u/p/7220009.html
2.1 概述
是可以实现增量备份的工具,配合计划任务,rsync能够实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。它的最终目的是实现两端主机的文件同步,但是同时也实现了scp的远程拷贝,cp的本地拷贝,rm删除和ls-l显示文件列表等功能
2.2 rsync同步基本说明
目的:实现本地主机和远程主机上的文件同步(包括本地推远程,远程拉本地),也可以实现本地不同路径下文件的同步,但是不能实现远程路径1到远程路径2的同步(这部分scp可以实现)
rsync同步过程由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式
- 检查模式:按照制定规则来检查哪些文件需要被同步。默认情况下,rsync采用“quick check”算法快速检查源文件和目标文件的大小,mtime(修改时间)是否一致,如果不一致则需要传输。也可以通过参数来改变quick check的价差模式
- 同步模式:指在文件确定要同步后,在同步过程发生前需要做哪些额外工作,如:是否先备份已经存在的目标文件,是否先删除源主机上没有但是目标主机上有的文件等
2.3 rync三种工作方法
三种工作方法:
- 本地文件系统上实现同步
- 本地主机使用远程shell和远程主机通信
- 本地主机通过网络套接字连接远程主机上的rsync daemon
前两者的本质是通过管道通信,即远程shell。
第三种方式则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端连接。
上一篇: linux crontab例行任务配置
下一篇: Mac crontab定时器