每日生成一個固定日期格式的文件,並將磁盤的使用狀況記錄到文件中

  • 要求:
    • 按照(xxxx-xx-xx)這樣的日期格式每日生成一個文件,好比今天生成的文件爲2018-2-7.log,而且把磁盤的使用狀況寫到這個文件中(不考慮cron,僅僅寫腳本)
  • 需求分析
    • 這個腳本中有兩點,一是按照日期的格式來生成文件
    • 二是把磁盤的使用狀況寫到這個文件中
  • 實現
  1. 日期文件格式爲(xxxx-xx-xx),兩種方法實現,date命令筆記
  • date +%F
  • date +%Y-%m-%d
[root@hf-01 ~]# date +%F
2018-02-07

[root@hf-01 ~]# date +%Y-%m-%d
2018-02-07
  1. 查看磁盤使用狀況,df命令筆記
  • df 命令查看磁盤使用狀況
    • -h能夠適當的使用單位,來顯示磁盤使用狀況
[root@hf-01 ~]# df -h
文件系統        容量  已用  可用 已用% 掛載點
/dev/sda3        18G  6.5G   12G   37% /
devtmpfs        488M     0  488M    0% /dev
tmpfs           494M     0  494M    0% /dev/shm
tmpfs           494M  6.7M  487M    2% /run
tmpfs           494M     0  494M    0% /sys/fs/cgroup
/dev/sda1       197M   75M  122M   39% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@hf-01 ~]#

腳本

[root@hf-01 hanfeng]# vim 01.sh
[root@hf-01 hanfeng]# cat 01.sh
#! /bin/bash
d=`date +%F`
logfile=$d.log
df -h >$logfile
[root@hf-01 hanfeng]# sh -x 01.sh
++ date +%F
+ d=2018-02-07
+ logfile=2018-02-07.log
+ df -h
[root@hf-01 hanfeng]# ls
01.sh  2018-02-07.log
[root@hf-01 hanfeng]# cat 2018-02-07.log 
文件系統        容量  已用  可用 已用% 掛載點
/dev/sda3        18G  6.5G   12G   37% /
devtmpfs        488M     0  488M    0% /dev
tmpfs           494M     0  494M    0% /dev/shm
tmpfs           494M  6.7M  487M    2% /run
tmpfs           494M     0  494M    0% /sys/fs/cgroup
/dev/sda1       197M   75M  122M   39% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@hf-01 hanfeng]#
  • 會看到當前目錄下,生成了2018-02.07.log的日誌文件,而且這個日誌文件中記錄了是磁盤的使用狀況

擴展

  1. shell腳本中反引號能夠表示爲一個命令的結果,一般給變量賦值(PS:注意在賦值等於號兩邊不要有空空格,不然會報錯,好比 n=wc -l /etc/passwd ,但如果n= wc -l /etc/passwd就會報錯)
[root@hf-01 hanfeng]# n=`wc -l /etc/passwd |awk '{print $1}'`
[root@hf-01 hanfeng]# echo $n
23
[root@hf-01 hanfeng]#
  1. 符號 > 爲正確重定向,在運行一條命令的時候,會有正確和錯誤的輸出信息,>會把正確的輸出信息輸入到指定文件裏,而 2> 會把錯誤的信息寫入到指定文件裏

小練習

  • 需求
    • 每日生成一個固定日期格式的文件,並將根目錄下的全部文件名記錄到文件中
[root@hf-01 shell]# cat 001.sh
#! /bin/bash
d=`date +%F`
wenjian=$d.log
ls -l / > $wenjian
echo "$wenjian" > /tmp/log
[root@hf-01 shell]# sh -x 001.sh
++ date +%F
+ d=2018-02-08
+ wenjian=2018-02-08.log
+ ls -l /
+ echo 2018-02-08.log
[root@hf-01 shell]#

改良版本

#/bin/bash
read  -p "請輸入目錄路徑:"  a
if  [  !  -d  $a ]
then
echo "$a不是目錄"
else
d=`date +%F`
ls -l  $a > /tmp/$d.log
echo "$a是目錄"
fi
相關文章
相關標籤/搜索