[問題] 時間增減的計算
目前在寫一個備份用得程式
希望可以把要備份保留的數量做成變數來指定
像下面~設定保留 7 天
將 7 天前的檔案做刪除
del_num=7
stamp=`date +%Y%m%d_%H%M` #時間標記 , format 20110107_1256
stamp_del=`date -d' -${del_num} day' +%Y%m%d_%H%M` #要刪除的時間
echo "Time(stamp): ${stamp}"
echo "DEL(stamp_del): ${stamp_del}"
但是執行的結果如下
在刪除日期的檔名沒被抓到
感覺上是變數沒被抓進去
[root@linux10 ~]# sh test2.sh
date: invalid date ‘ -${del_num} day’
Time(stamp): 20201116_1026
DEL(stamp_del):
[root@linux10 ~]#
不知道有沒有哪位可以指點一下這個寫法是哪裡有問題?
--
『老闆你好 我是國立的』 『老闆你好 我是私立的』 『腦~~~~~~~闆~~~~~~』 Amy!
◢ ◣有消息會跟你聯絡 ◢ ◣有消息會跟你聯絡 ◢ ◣給她個私人秘書職位
◤ ◥ ◥ ◢ ◤◥ ◥ ◢ ◥◢ ◣ 國立
-○=○- ◤ -□=□- ◤ ◥● ●● ◤ ◥ 私立
◥ ◤ ︶ ◥ ◤ ︶ ● ▼◤ ● ) 尬不過
◢ ◥◣╱ ◥ -? ◢ ◣◣╱ ◥ - ◢ )●) ▼ ◤ 兩粒
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.62.244 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1605493899.A.E62.html
推
11/16 10:42,
4年前
, 1F
11/16 10:42, 1F
照你說的單引號改雙引號還是不行~
del_num=7
stamp=`date +%Y%m%d_%H%M` #時間標記 , format 20110107_1256
stamp_del=`date -d" -${del_num} day" +%Y%m%d_%H%M` #要刪除的時間
echo "Time(stamp): ${stamp}"
echo "DEL(stamp_del): ${stamp_del}"
輸出結果
test2.sh: line 3: -${{del_num}} day: bad substitution
Time(stamp): 20201116_1137
DEL(stamp_del):
※ 編輯: sanbis (59.125.62.244 臺灣), 11/16/2020 11:38:43
推
11/16 11:41,
4年前
, 2F
11/16 11:41, 2F
推
11/16 13:13,
4年前
, 3F
11/16 13:13, 3F
→
11/16 13:14,
4年前
, 4F
11/16 13:14, 4F
→
11/16 13:14,
4年前
, 5F
11/16 13:14, 5F
→
11/16 13:16,
4年前
, 6F
11/16 13:16, 6F
→
11/16 13:16,
4年前
, 7F
11/16 13:16, 7F
→
11/16 13:16,
4年前
, 8F
11/16 13:16, 8F
推
11/16 13:18,
4年前
, 9F
11/16 13:18, 9F
→
11/16 13:19,
4年前
, 10F
11/16 13:19, 10F
推
11/16 13:23,
4年前
, 11F
11/16 13:23, 11F
推
11/16 13:39,
4年前
, 12F
11/16 13:39, 12F
→
11/16 13:39,
4年前
, 13F
11/16 13:39, 13F
→
11/16 17:11,
4年前
, 14F
11/16 17:11, 14F
→
11/16 17:27,
4年前
, 15F
11/16 17:27, 15F
最後是這個樣子~
#!/bin/sh
#!/bin/dash
del_num=7
stamp=`date +%Y%m%d_%H%M` #時間標記 , format 20110107_1256
stamp_del=`date -d" -${del_num}day" +%Y%m%d_%H%M` #要刪除的時間
echo "Time(stamp): ${stamp}"
echo "DEL(stamp_del): ${stamp_del}"
輸出結果為
Time(stamp): 20201116_1744
DEL(stamp_del): 20201109_1744
-${del_num}day
這個 - 不能拿掉~
不然就變成往後算七天了~
感激上面的幾位提供的意見~m(_ _)m
※ 編輯: sanbis (59.125.62.244 臺灣), 11/16/2020 17:47:42
推
11/16 18:00,
4年前
, 16F
11/16 18:00, 16F
→
11/16 18:00,
4年前
, 17F
11/16 18:00, 17F
推
11/16 18:02,
4年前
, 18F
11/16 18:02, 18F
明天再來各別測試~
→
11/17 17:24,
4年前
, 19F
11/17 17:24, 19F
原本的計畫是在遠端主機上執行備份並用 FTP 上傳~
結果測試以後…………
遠端主機權限沒有提供 FTP 傳輸檔案~
要改用 PHP 去寫這個傳輸檔案的功能~
整個備份架構重新更改中~
(眼神死~Orz
※ 編輯: sanbis (61.224.154.49 臺灣), 11/18/2020 01:56:27
→
11/18 06:31,
4年前
, 20F
11/18 06:31, 20F
→
11/18 06:31,
4年前
, 21F
11/18 06:31, 21F
有提供 FTP 上傳/下載檔案功能
只是你用 script 直接執行就不支援
至於 sftp 。。。。
遠端主機連 SSH 都沒有~怎麼可能會有 sftp
※ 編輯: sanbis (59.125.62.244 臺灣), 11/18/2020 15:41:40
剛剛重新測試~
#!/bin/sh
#!/bin/dash
這個不是必要的
只要把 ' -${del_num} day' 改為雙引號就可以了
(之前說失敗可能是眼睛脫窗沒看清楚?)
del_num=7
stamp=`date +%Y%m%d_%H%M` #時間標記 , format 20110107_1256
stamp_del=`date -d" -${del_num} day" +%Y%m%d_%H%M` #要刪除的時間
echo "Time(stamp): ${stamp}"
echo "DEL(stamp_del): ${stamp_del}"
※ 編輯: sanbis (59.125.62.244 臺灣), 11/18/2020 15:47:22
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章