1. 程式人生 > >Linux指令碼寫檔案定時備份

Linux指令碼寫檔案定時備份

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另 外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :crontab 命令。

(一)crond簡介

crond 是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序,與windows下的計劃任務類似,當安裝完成作業系統後,預設會安裝此服務 工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

Linux下的任務排程分為兩類,系統任務排程和使用者任務排程。

系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc目錄下有一個crontab檔案,這個就是系統任務排程的配置檔案

--------------------------------------------------------------------------------------------------------------------------------------------------------------

(二)定時任務常用命令:

  cat /etc/crontab                      #檢視下已經設定好的計劃任務
  /etc/init.d/crond restart             #重啟計劃任務服務
  at /var/log/cron                      #檢視日誌
  service crond status                  #檢視crond的狀態
  service crond restart                 #重新啟動crond服務
  service crond reload                  #重新載入配置
  service crond stop                    #關閉服務
  crontab -e                            #進入編輯模式,修改crontab內容
  cat /etc/crontab                      #檢視所有定時任務
  chkconfig –level 35 crond on          #加入開機自動啟動

-----------------------------------------------------------------------------------------------------------------------------------------------------------

(三)編寫一個Linux定時備份檔案的指令碼

    (1)建立指令碼            

#在/usr/local/java這個目錄下建立指令碼。
[[email protected] ~]# touch /usr/local/java/backup.sh

    (2)進入指令碼

[[email protected] ~]#  vi /home/backup.sh

   在指令碼內寫入:

#!/bin/bash

cd  /usr/local/java/tomcat/webapps/pms
#進入到壓縮目標所在目錄下

tar czf  /backup/upload-bk/upload$(date +%Y%m%d).tar.gz upload
#將upload檔案(目錄)壓縮到upload-bk目錄下並命名為:upload(+當前日期).tar.gz

find /backup/upload-bk -mtime 1 -name "*.tar.gz" -exec rm -f {} \;
#查詢出超過一天的字尾為“.tar.gz”的檔案並進行刪除

  (3)執行指令碼檔案

     直接手動執行指令碼檔案。例如:

[[email protected] ~]#  sh /usr/local/java/backup.sh

  (4)設定定時執行指令碼

            例如:設定指令碼每7天執行一次。

a. 安裝crond

           如果沒有安裝crond服務就先裝上服務。 

#檢查服務狀態:
[[email protected] ~]# service crond status

    b. 修改crontab內容       

         如果編輯檔案不存在,則直接建立。

[[email protected] ~]# crontab -e

#進入後編輯輸入:
0 0 * * * /bin/sh /usr/local/java/backup.sh

     上面的命令意思是:每天00:00時執行一次指令碼檔案

     然後,儲存退出。按下Esc後,輸入命令::wq

   sh指令碼前面五個欄位分別表示:

   分鐘(0-59)、小時(0-23)、日(1-31)、月(0-12)、星期幾(0-6)

    c. 重新啟動crond服務

[[email protected] ~]# service crond restart

---------------------------------------------------------------------------至此配置完成!------------------------------------------------------------

相關推薦

Linux指令碼檔案定時備份

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另 外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :crontab 命

Linux下mysql資料庫定時備份並刪掉3天前的備份檔案

1.首先檢查下有沒有安裝crond,命令為service crond status,如果出現unrecognized service,則說明沒有安裝,如果出現    crond is stopped。如果出現crond (pid  1956) is running...則表示

linux-指令碼-配置檔案的工具

#!/bin/bash #author:summer #file name: configSetting.sh #function: set config info config_path="./conf/watch_config.conf" valid_paras=("ip","port",

Linux 下mysql的定時備份

在實際專案中,資料庫是要經常備份的,就是為了防止突發情況,前段時間,我的資料庫就遭遇了入侵要支付B特比的,結果資料全沒了,哎,還好當時只是個測試庫,不過有了這次危機,也就開始意識到了這個問題了。 先寫個測試的資料庫備份命令: #!/bin/sh DB_USER="root" DB_PASS="123

32. linux下oracle資料庫定時備份

這裡以oradatabak.sh(裡面的內容要根據實際修改)指令碼放在/u01/11g/datapump下為例:   #1.新增指令碼執行許可權 chmod +x /u01/11g/datapump/oradatabak.sh #2.在oracle使用者下新增定時任務,每天晚上23點,以or

linux下使用crontab定時備份MYSQL資料庫

第一步:在伺服器上配置備份目錄程式碼: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/li

linux指令碼傳輸檔案(本機到遠端)

expect -c "    set timeout 10    spawn scp ××××××.tar.bz2 [email protected]:/    expect yes/no

Linux下使用expdp定時備份Oracle資料庫

使用Xshell連線伺服器輸入使用者名稱密碼 建立備份資料庫儲存路徑 在根目錄下建立oradata目錄 在oradata目錄下建立databak用於存放shell指令碼 在oradata下建立dum

linux檔案學習

遇到了一個坑。 file_size = lseek(fd_src, 0, SEEK_END); lseek - reposition read/write file offset

Linux(RedHat)中ORACLE定時備份任務

到處搜刮來的 1、建立備份資料夾,用於存放備份檔案。如/mnt/dmp 給oracle使用者(oracle執行使用者或者其它)賦予備份資料夾讀寫許可權,chmod -Rf /mnt/dmp 2、建立備份指令碼。如/mnt/dmp/backup.sh 內容: rq=$(dat

Linux定時備份交換機配置檔案

場景:交換機數量幾百臺,需要定時備份配置檔案以防丟失。 最初方案:從Linux上寫一個expect指令碼,定時登入到交換機,手動執行檢視配置檔案(show run),並記錄日誌。 最開始寫了一個expect指令碼,內容如下: #!/usr/bin/expect set date [

crontab新增系統定時任務--資料庫定時備份指令碼&傳輸檔案到阿里雲伺服器定時指令碼

前言         由於公司網站被黑客攻擊,導致部分資料丟失,需要使用0.6個比特幣贖回,因為建立資料安全對策,提高網站和資料安全級別,同時進行資料定時備份,並將資料傳輸阿里雲伺服器存放,特此記錄。 1,A,B伺服器之間建立信任 https:

Linux命令之檔案同步、定時備份 -rsync,cron,crontab

一、rsync介紹(可忽略) Rsync(remote synchronize)是一個遠端檔案同步工具; Rsync使用“Rsync演算法”來同步檔案,該演算法只傳送兩個檔案的不同部分,因此速度相當快; Rsync是替代rcp的一個工具,目前由rsync.

linux指令碼定時刪除檔案

[[email protected] ~]# vi /etc/init.d/delete.sh 內容: #!/bin/bash dir=/upload/file/images/login/qrcode    //要刪除檔案的資料夾路徑 files=`ls $

linux 定時備份檔案

檔案備份指令碼程式碼 #!/bin/bash # 備份原始檔夾 targetFile=/home/vince/eclipse-workspace/ # 備份目的地資料夾 backdir=/home/vince/backup/code datetime=`date +"%Y-%m-%d %H

linux 使用python3 定時備份mysql資料庫指令碼 修改配置直接可用。親測!

# Time : 2018/12/24 # Author : [email protected]#依賴包 pip install schedule#注意事項#1. linux中 使用os.system()包裹的命令有特殊字元如)(請使用轉義\)\(或'(' ')'#2. 輸入的資料庫密碼 -p+密

Linux定時備份檔案

今天有人讓我給寫個指令碼,說是讓Linux定時備份檔案資料,並刪除超過一定時間的備份。聽起來很有意思,一番摸索之後成功了沒有呢?(因為是給對linux不太熟的人看,所以比較詳細)具體看下面吧: 一、 編寫指令碼 編寫一個指令碼檔案,使指令碼可以執行

Linux定時備份檔案

WAHT IS THIS 在這篇部落格中,筆者介紹了怎麼在Linux中備份檔案,使用到的有crontab、tar和shell指令碼相關知識。筆者最近在學習中會寫一些demo程式,有時候一些誤操作會讓自己幾個小時的成果丟失,例如對其他檔案進行誤操作,覆蓋了其它重

關於linux定時任務與shell指令碼——實現遠端資料庫備份

一、常用的命令如下:1、編輯一個新的crontab任務    crontab -e2、檢視編寫後的crontab任務    crontab -l3、重啟contab任務服務    service crond restart4、檢視contab任務狀態    service c

定時執行Linux shell指令碼實現SFTP定時上傳下載檔案

之所以寫這篇文章,是因為網上很多有關文章亂轉載,crontab 命令的語法都是錯的,都直接轉了,雖然很簡單,但也會浪費時間啊,尤其是對於第一次寫的同學來說。轉入正題一:定時任務(大部分文章出錯的就是這個部分)1.執行命令:crontab -e2.按 i 編輯檔案,新增命令如下