Linux計劃任務及壓縮歸檔

計劃任務介紹

咱們能夠經過一些設置。來讓電腦定時提醒咱們該作什麼事了。或者咱們提早設置好,告訴電腦你幾點作什麼幾點作什麼,這種咱們就叫它定時任務。而遇到一些須要執行的事情或任務。咱們也能夠經過命令來告訴電腦一會臨時把這個工做給作一下
總結:在咱們LINUX中,咱們能夠經過crontab和at這兩個東西來實現這些功能的
計劃任務的做用:是作一些週期性的任務,在生產中的主要用來按期備份數據
計劃任務的安排方式分兩種:
一種是定時性的,也就是例行。就是每隔必定的週期就要重複來作這個事情
一種是突發性的,就是此次作完了這個事,就沒有下一次了,臨時決定,只執行一次的任務
at和crontab這兩個命令:
at:它是一個能夠處理僅執行一次就結束的指令
crontab:它是會把你指定的工做或任務,好比:腳本等,按照你設定的週期一直循環執行下去算法

at一次性計劃任務使用

at語法格式:at 時間測試

  1. 下載at程序
    [root@ken ~]# yum install at -yrest

  2. 啓動atd服務
    [root@ken ~]# systemctl restart atd;通常程序後面加一個d
    [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 atdcode

  3. 設置at計劃任務
    [root@ken ~]# at 10:00 #若是是上午時間,後面加上am,好比9:20am
    at> touch /tmp/test1 #輸入你要執行的命令 at> #按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
    blog

  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定時任務的使用

語法:#crontab -u  -e
經常使用選項:
-l:list,列出指定用戶的計劃任務列表
-e:edit,編輯指定用戶的計劃任務列表
-u:user,指定的用戶名,若是不指定,則表示當前用戶
-r:remove,刪除指定用戶的計劃任務列表ip

  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 crondrem

  2. 查看計劃任務
    [root@ken ~]# crontab -l
    no crontab for root
    計劃任務保存位置;/var/spool/cron/文檔

  3. 編寫計劃任務
    計劃任務的規則語法格式,以行爲單位,一行爲一個計劃:
    分 時 日 月 周 須要執行的命令
    執行的命令建議寫成絕對路徑的格式!
    例如:若是想要天天的0點0分執行reboot指令,則能夠寫成
    0 0 * * * reboot
    取值範圍(常識):
    分:0~59
    時:0~23
    日:1~31
    月:1~12
    周:0~7,0和7表示星期天
    四個符號:
    :表示取值範圍中的每個數字
    -:作連續區間表達式的,要想表示1~7,則能夠寫成:1-7
    /:表示每多少個,例如:想每10分鐘一次,則能夠在分的位置寫:
    /10
    ,:表示多個取值,好比想在1點,2點6點執行,則能夠在時的位置寫:1,2,6
    問題1:每個月一、十、22日的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:00至23: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
  1. 刪除計劃任務
    [root@ken ~]# crontab -l * * * * * echo 「123」 >> /root/ken.txt
    [root@ken ~]# crontab -r
    [root@ken ~]# crontab -l no crontab for root
    注意:在計劃任務中,默認的最小單位就是分,不能再小了。
    crontab裏面的%必須+/進行轉義,不然就會出錯。
    命令的位置要用絕對路徑!
    刪除任務能夠編輯文檔用#標記不執行的任務。

壓縮歸檔

  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
    不想要看過程,就是czf不要v。xzvf同理。

  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 能夠不用加z。 注意:在建立壓縮文件的時候,最好進入須要壓縮文件的目錄下。

相關文章
相關標籤/搜索