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


 

計划任務介紹

 

我們可以通過一些設置。來讓電腦定時提醒我們該做什么事了。或者我們提前設置好,告訴電腦你幾點做什么幾點做什么,這種我們就叫它定時任務。而遇到一些需要執行的事情或任務。我們也可以通過命令來告訴電腦一會臨時把這個工作給做一下

總結:在我們LINUX中,我們可以通過crontab和at這兩個東西來實現這些功能的

計划任務的作用:是做一些周期性的任務,在生產中的主要用來定期備份數據

 

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

一種是定時性的,也就是例行。就是每隔一定的周期就要重復來做這個事情

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

 

at和crontab這兩個命令:

at:它是一個可以處理僅執行一次就結束的指令

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

 

at一次性計划任務使用

 

at語法格式:at 時間

 

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:每周六、周日的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM