Linux計劃任務及壓縮歸檔(week2_day1)--技術流ken

 

計劃任務介紹

 

咱們能夠經過一些設置。來讓電腦定時提醒咱們該作什麼事了。或者咱們提早設置好,告訴電腦你幾點作什麼幾點作什麼,這種咱們就叫它定時任務。而遇到一些須要執行的事情或任務。咱們也能夠經過命令來告訴電腦一會臨時把這個工做給作一下算法

總結:在咱們LINUX中,咱們能夠經過crontab和at這兩個東西來實現這些功能的測試

計劃任務的做用:是作一些週期性的任務,在生產中的主要用來按期備份數據spa

 

計劃任務的安排方式分兩種:rest

一種是定時性的,也就是例行。就是每隔必定的週期就要重複來作這個事情code

一種是突發性的,就是此次作完了這個事,就沒有下一次了,臨時決定,只執行一次的任務orm

 

at和crontab這兩個命令:blog

at:它是一個能夠處理僅執行一次就結束的指令進程

crontab:它是會把你指定的工做或任務,好比:腳本等,按照你設定的週期一直循環執行下去crontab

 

at一次性計劃任務使用

 

at語法格式:at 時間ip

 

1. 下載at程序

[root@ken ~]# yum install at -y

 

2. 啓動atd服務

[root@ken ~]# systemctl restart atd
[root@ken ~]# ps aux |  grep atd
root       1166  0.0  0.1  25904   944 ?        Ss   17:52   0:00 /usr/sbin/at -f
root       1168  0.0  0.1 112704   956 pts/0    S+   17:52   0:00 grep --color=auto atd

 

3. 設置at計劃任務

[root@ken ~]# at 10:00                       #若是是上午時間,後面加上am,好比9:20am
at> touch /tmp/test1                         #輸入你要執行的命令
at> <EOT>                                    #按ctrl+d保存
job 1 at Fri Mar  1 10:00:00 2019
[root@ken ~]# at -l                          #查看計劃任務
1    Fri Mar  1 10:00:00 2019 a root
[root@ken ~]# atq                            #查看計劃任務
1    Fri Mar  1 10:00:00 2019 a root

 

4. 刪除計劃任務atrm

[root@ken ~]# at -l                           #第一步查看計劃任務,獲取前面編號
1    Fri Mar  1 10:00:00 2019 a root
[root@ken ~]# atrm 1                          #刪除計劃任務加上編號
[root@ken ~]# at -l                           #再次查看計劃任務發現已經刪除
 

 

5. at計劃任務的特殊寫法

[root@ken ~]# at 20:00 2018-10-1   在某天 
[root@ken ~]# at now +10min   在 10分鐘後執行
[root@ken ~]# at 17:00 tomorrow   明天下午5點執行
[root@ken ~]# at 6:00 pm +3 days   在3天之後的下午6點執行

 

crontab定時任務的使用

 

語法:#crontab -u  -e

         經常使用選項:

                  -llist,列出指定用戶的計劃任務列表

                  -eedit,編輯指定用戶的計劃任務列表

                  -uuser,指定的用戶名,若是不指定,則表示當前用戶

                  -rremove,刪除指定用戶的計劃任務列表

 

1. 查看進程是否啓動

[root@ken ~]# ps aux | grep crond
root        621  0.0  0.3 126284  1600 ?        Ss   17:46   0:00 /usr/sbin/crond -n
root       1194  0.0  0.1 112704   956 pts/0    S+   18:05   0:00 grep --color=auto crond

 

2. 查看計劃任務

[root@ken ~]# crontab -l
no crontab for root

 

3. 編寫計劃任務

計劃任務的規則語法格式,以行爲單位,一行爲一個計劃:

分 時 日 月 周 須要執行的命令

執行的命令建議寫成絕對路徑的格式!

 

例如:若是想要天天的00分執行reboot指令,則能夠寫成

0 0 * * * reboot

 

取值範圍(常識):

分:0~59

時:0~23

日:1~31

月:1~12

周:0~707表示星期天

 

四個符號:

*:表示取值範圍中的每個數字

-:作連續區間表達式的,要想表示1~7,則能夠寫成:1-7

/:表示每多少個,例如:想每10分鐘一次,則能夠在分的位置寫:*/10

,:表示多個取值,好比想在1點,26點執行,則能夠在時的位置寫:1,2,6

 

問題1:每個月11022日的4:45重啓network服務

45  4  1,10,22  *  *  systemctl restart network (每個月,周沒有制定)

 

問題2:每週6、週日的1:10重啓network服務

10  1  *  *  6,7  systemctl restart network   (日、月沒有指定)

 

問題3:天天18:0023:00之間每隔30分鐘重啓network服務

*/30  18-23  *  *  *  systemctl restart network  ( 日 月 周 沒有指定)

 

問題4:每隔兩天的上午8點到11點的第3和第15分鐘執行一次重啓

3,15  8-11  */2  *  *  reboot   (月和周沒有指定)

 

案例:真實測試案例,每1分鐘往root家目錄中的ken.txt中輸一個123,爲了看到效果使用追加輸出

 

[root@ken ~]# crontab -e                    #編寫計劃任務
* * * * * echo "123" >> /root/ken.txt       
[root@ken ~]# tail -f ken.txt               #查看計劃任務執行結果
123
123

 

4. 刪除計劃任務

[root@ken ~]# crontab -l
* * * * * echo "123" >> /root/ken.txt
[root@ken ~]# crontab -r
[root@ken ~]# crontab -l
no crontab for root

注意:在計劃任務中,默認的最小單位就是分,不能再小了。

 

壓縮歸檔

 

  1. 掌握歸檔的定義:歸檔(archiving)就是將許多文件(或目錄)打包成一個文件。
  2. 瞭解歸檔的目的:歸檔的目的就是方便備份、還原及文件的傳輸操做。
  3.  掌握tar命令的功能:將多個文件(也可能包括目錄,由於目錄自己也是文件)放在一塊兒存放到一個磁帶或磁盤歸檔文件中。而且未來能夠根據須要只還原歸檔文件中的某些指定的文件。
  4. 掌握tar命令的經常使用選項:
  • c:建立一個新的tar文件。
  • t:列出tar文件中目錄的內容。
  • x:從tar文件中抽取文件。
  • f:指定歸檔文件或磁帶(也多是軟盤)設備(通常都要選)。
  • v:顯示所打包的文件的詳細信息,v是verbose的第1個字母。
  • z:使用gzip壓縮算法來壓縮打包後的文件。
  • j:使用bzip2壓縮算法來壓縮打包後的文件(文件壓縮的更小)

 

經常使用選項組合:

壓縮歸檔:czvf

解壓:xzvf

 

1. 壓縮歸檔

[root@ken ~]# mkdir test
[root@ken ~]# cd test
[root@ken test]# touch {1..10}.txt
[root@ken test]# tar czvf test.tar.gz ./*
./10.txt
./1.txt
./2.txt
./3.txt
./4.txt
./5.txt
./6.txt
./7.txt
./8.txt
./9.txt
[root@ken test]# ls
10.txt  2.txt  4.txt  6.txt  8.txt  test.tar.gz
1.txt   3.txt  5.txt  7.txt  9.txt

 

2. 解壓

[root@ken test]# rm -rf {1..10}.txt
[root@ken test]# ls
test.tar.gz
[root@ken test]# tar xzvf test.tar.gz 
./10.txt
./1.txt
./2.txt
./3.txt
./4.txt
./5.txt
./6.txt
./7.txt
./8.txt
./9.txt
[root@ken test]# ls
10.txt  2.txt  4.txt  6.txt  8.txt  test.tar.gz
1.txt   3.txt  5.txt  7.txt  9.txt

 

能夠加上-C制定解壓到那個目錄

[root@ken test]# tar xvf test.tar.gz -C /tmp
./10.txt
./1.txt
./2.txt
./3.txt
./4.txt
./5.txt
./6.txt
./7.txt
./8.txt
./9.txt
[root@ken test]# ls /tmp
10.txt  2.txt  4.txt  6.txt  8.txt  ks-script-8jIJc_  yum.log
1.txt   3.txt  5.txt  7.txt  9.txt  vmware-root
相關文章
相關標籤/搜索