Linux命令 - crontab命令 和 rsync命令

Table of Contents

1. crontab命令 

1.1 crond簡介

1.2 crond服務

1.3 crond命令詳解

2. rsync命令

2.1 概述

2.2 rsync同步基本說明

2.3 rync三種工作方法


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三種工作方法

三種工作方法:

  1. 本地文件系統上實現同步 
  2. 本地主機使用遠程shell和遠程主機通信
  3. 本地主機通過網絡套接字連接遠程主機上的rsync daemon

前兩者的本質是通過管道通信,即遠程shell。

第三種方式則是讓遠程主機上運行rsync服務,使其監聽在一個端口上,等待客戶端連接。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章