shellscript tar問題 - Linux
By Suhail Hany
at 2021-08-05T21:35
at 2021-08-05T21:35
Table of Contents
不好意思我又來了...
這幾天遇到一些問題想破頭只想出一點東西 決定還是來跟各位求助..
因為剛學script 是超級菜雞 寫得很雜亂請大家見諒
#!/bin/bash
last_month=$(date -d "$(date +%Y%m)01 last month" +%Y%m)
Source=/home/ray/photo
dest=/home/ray/photo2
sourcefilesize=$(ls -l /home/ray/photo/$last_month* | awk '{ SUM += $5} END {
print SUM}')
#destfilesize=$(ls -l /home/ray/photo3/$last_month* | awk '{ SUM += $5} END {
print SUM}')
today=$(date +"%Y-%m-%d")
zipname=$TODAY.tar.gz
zipfilename=${last_month:2}
verifydest=/home/ray/photo3
cd /home/ray/photo
file=$(ls -d $last_month*)
tar -zcvPf /home/ray/photo2/$zipfilename.tar.gz $file
tar -zxvf /home/ray/photo2/$zipfilename.tar.gz -C /home/ray/photo3
destfilesize=$(ls -l /NAS/Raytest3/$last_month* | awk '{ SUM += $5} END {
print SUM}')
if [ $sourcefilesize == $destfilesize ];
then
rm -rf $Source/$file
else
exit
fi
if [ $sourcefilesize == $destfilesize ];
then
rm -rf $verifydest/$file
else
exit
fi
流程是這樣的
首先每個月1號將/home/ray/photo 上個月份的所有資料打包放到/home/ray/photo2 並命
名為2107.tar.gz(8月1號執行)
再將2107.tar.gz解包將資料放到/home/ray/photo3
然後比對/home/ray/photo 跟 /home/ray/photo3兩邊檔案大小(驗證是否正常) 如果OK就
把他們的資料刪掉
目前我測試時有準備兩個自建的資料夾20210701 & 20210702 放到/home/ray/photo
將20210701 & 20210702 打包命名2107.tar.gz 放到/home/ray/photo2
再將/home/ray/photo2的2107.tar.gz解包放到/home/ray/photo3
比對/home/ray/photo跟/home/ray/photo3 的20210701 & 20210702檔案大小是否一樣
確定一樣並刪除/home/ray/photo的 20210701 & 20210702
但是/home/ray/photo3的20210701 & 20210702 只有刪掉2021072
刪除/home/ray/photo3的時候只刪掉20210702而20210702還在沒有刪掉
不知道問題在哪裡...
--
這幾天遇到一些問題想破頭只想出一點東西 決定還是來跟各位求助..
因為剛學script 是超級菜雞 寫得很雜亂請大家見諒
#!/bin/bash
last_month=$(date -d "$(date +%Y%m)01 last month" +%Y%m)
Source=/home/ray/photo
dest=/home/ray/photo2
sourcefilesize=$(ls -l /home/ray/photo/$last_month* | awk '{ SUM += $5} END {
print SUM}')
#destfilesize=$(ls -l /home/ray/photo3/$last_month* | awk '{ SUM += $5} END {
print SUM}')
today=$(date +"%Y-%m-%d")
zipname=$TODAY.tar.gz
zipfilename=${last_month:2}
verifydest=/home/ray/photo3
cd /home/ray/photo
file=$(ls -d $last_month*)
tar -zcvPf /home/ray/photo2/$zipfilename.tar.gz $file
tar -zxvf /home/ray/photo2/$zipfilename.tar.gz -C /home/ray/photo3
destfilesize=$(ls -l /NAS/Raytest3/$last_month* | awk '{ SUM += $5} END {
print SUM}')
if [ $sourcefilesize == $destfilesize ];
then
rm -rf $Source/$file
else
exit
fi
if [ $sourcefilesize == $destfilesize ];
then
rm -rf $verifydest/$file
else
exit
fi
流程是這樣的
首先每個月1號將/home/ray/photo 上個月份的所有資料打包放到/home/ray/photo2 並命
名為2107.tar.gz(8月1號執行)
再將2107.tar.gz解包將資料放到/home/ray/photo3
然後比對/home/ray/photo 跟 /home/ray/photo3兩邊檔案大小(驗證是否正常) 如果OK就
把他們的資料刪掉
目前我測試時有準備兩個自建的資料夾20210701 & 20210702 放到/home/ray/photo
將20210701 & 20210702 打包命名2107.tar.gz 放到/home/ray/photo2
再將/home/ray/photo2的2107.tar.gz解包放到/home/ray/photo3
比對/home/ray/photo跟/home/ray/photo3 的20210701 & 20210702檔案大小是否一樣
確定一樣並刪除/home/ray/photo的 20210701 & 20210702
但是/home/ray/photo3的20210701 & 20210702 只有刪掉2021072
刪除/home/ray/photo3的時候只刪掉20210702而20210702還在沒有刪掉
不知道問題在哪裡...
--
Tags:
Linux
All Comments
By Victoria
at 2021-08-10T08:46
at 2021-08-10T08:46
By Robert
at 2021-08-14T19:58
at 2021-08-14T19:58
By Callum
at 2021-08-19T07:09
at 2021-08-19T07:09
By Regina
at 2021-08-23T18:20
at 2021-08-23T18:20
By Bethany
at 2021-08-28T05:31
at 2021-08-28T05:31
By Hedy
at 2021-09-01T16:43
at 2021-09-01T16:43
By Kyle
at 2021-09-06T03:54
at 2021-09-06T03:54
By Olivia
at 2021-09-10T15:05
at 2021-09-10T15:05
By Rosalind
at 2021-09-15T02:16
at 2021-09-15T02:16
Related Posts
直立外接螢幕待機後無法重開
By Joseph
at 2021-08-05T14:27
at 2021-08-05T14:27
makefile for loop 問題
By Megan
at 2021-08-04T16:25
at 2021-08-04T16:25
想實現在外面連回家中的Linux主機
By Zanna
at 2021-08-03T01:42
at 2021-08-03T01:42
shellscript tar問題
By Isla
at 2021-07-31T10:55
at 2021-07-31T10:55
shellscript tar問題
By Susan
at 2021-07-31T07:54
at 2021-07-31T07:54