㈠ shell腳本中為什麼tar解壓縮時靈時不靈
這個要看你的腳本是怎麼寫的
如果說她有時是好的,那就說明命令應該是ok的
那可能的原因就是是不是由於系統卡或者命令超時,導致你的tar失敗
㈡ shell腳本壓縮文件
#!/bin/bash
##for file zip and unzip
#date:2011/7/20
#input:current_filename
#use gunzip\bzip\tar commands to do this .
#two choices:pack||unpack
pack()
{
##use tar cmd to pack file
echo "Now will use tar to pack the file......"
echo "tar $CUR_FILE ......."
#sleep 1
tar -zcvf $CUR_FILE.tar.gz $CUR_FILE
if [ "$?" -eq "0" ];then
echo "pack file $CUR_FILE into tar.gz file ok~!"
else
echo "Error:Pack file into tar.gz failed~!"
exit 1
fi
}
unpack(){
##get file type
ftype=`file $CUR_FILE`
#echo file type
echo "Your file type is:###$ftype"
case "$ftype" in
"$CUR_FILE: Zip archive"*)
unzip $CUR_FILE
echo "unzip $CUR_FILE OK~!"
;;
"$CUR_FILE: gzip compressed"*)
gunzip $CUR_FILE
echo "gunzip $CUR_FILE OK~!"
;;
"$CUR_FILE: bzip2 compressed"*)
bunzip2 $CUR_FILE
echo "bunzip $CUR_FILE OK~!"
;;
*)
echo "File $CUR_FILE can not be uncompressed!!!"
exit 1
;;
esac
}
CUR_FILE="$1"
if [ -z $CUR_FILE];then
echo "Please input your filename!"
exit 1
else
echo "Your file name:$CUR_FILE"
##make target choice
echo "Which work you wanna do?"
select var in "pack" "unpack";do
break
done
echo "You selected $var file....."
case $var in
pack)
pack CUR_FILE
;;
unpack)
unpack CUR_FILE
;;
*)
echo "Usage:select option error!"
exit 1
esac
fi
㈢ shell中的tar命令,我解壓出文件所在路徑不是我所想的啊,求助
由於你的系統數仿配在打包大埋時 沒有刪除開頭的「/」
所以你解壓時, 自然將解壓到/accbss/run/log/下了
你先試試 tar -xvf checkdpresentcrm.tar -C /PATH
如果不行的話 你就只能重新打包了(使用相對路徑)
cd /accbss/run/log/
tar -cvf checkdpresentcrm.tar /薯指RMonthPay.logb
tar -xvf checkdpresentcrm.tar -C /PATH
㈣ shell腳本:需根據文件的大小進行壓縮
sh -x yourshell
看看每個步驟
你的第一步就有問題了, file就是把目錄下的文件全都列出來了,取第二列就是文件名了。怎麼去和2000000比較???
tar也有問題,你壓縮成什麼?少了參數吧。。。
rm也有問題。你才壓縮一個文件,就把整個目錄幹掉了、、、
find . -size +2M 這樣不就把文件大於2M的弄出來了。。。僅供參考:
[root@localhost ~]# ls -sh a
27M a
[root@localhost ~]# find . -size +2M
./a
[root@localhost ~]# find . -size +2M -exec tar cjf /tmp/{}.tar.bz2 {} \;
[root@localhost ~]# ls /tmp/
a.tar.bz2
㈤ Shell程序實現每天將主目錄下的所有目錄和文件歸檔 並壓縮為文件mybackup.tar.gz然後讓腳本開機自動運行
首先確定幾個問題:
1、主目錄路徑,備份文件存放路徑,要麼給腳本自己加上去也行
2、備份完數據後,主目錄下的文件刪不刪,不刪的話相當於每天備份全量,刪除的話每天備份增量
3、備份規則是當天備份前一天的還是當天備份當天的,如果實時有數據,建議備份前一天,如果固定時間有數據,那麼備份當天的即可。
#!/bin/bash
sdir=
ddir=
logfile=./backup-$(date -d "yesterday" +%Y-%m-%d).log
tar -zcvf $ddir/mybackup-$(date -d "yesterday" +%Y-%m-%d) $sdir/* --remove-files &> $logfile
腳本如上,對應三個問題的解釋
1、sdir指定要備份的目錄,ddir指定備份文件存放的目錄
2、腳本中歸檔壓縮命令那一行--remove-files是壓縮後刪除源文件的意思,對應刪除主目錄下的文件,如果不需要刪除,去掉這個參數就行了
3、最後在需要執行的用戶下執行crontab -e(裡面的編輯方式和vim一樣)
0 0 * * * /bin/sh /#這里是腳本所在的目錄/#腳本名稱
:wq保存退出,執行crontab -l能看到這個任務即可,時間的話按自己的需要根據實際情況定義,這里定義每天的0點執行。
㈥ linux壓縮命令tar.gz
方法陸談如下:早帆碰
設備:華為筆記本。
系統:linux。
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。
㈦ shell 命令 tar 的使用簡介
tar 命令是用來建立、還原備份文件的工具程序,其可以加入、解開備份文件內的文件,英文全拼為 tape archive 。
tar 命令本身不具備壓縮功能,其是調用其他的壓縮功能實現的。
tar 命令的選項參數非常的多,一般需要記住幾個常用的命令選項參數即可。
-c 或者 --create :建立新的備份文件
-C 或者 --directory=DIR :改變至目錄 DIR
-f 或者 --file=ARCHIVE :指定備份文件為 ARCHIVE
-j 或者 --bzip2 :通過 bzip2 過濾歸檔
-z 或者 --gzip 或者 --gunzip 或者 --unzip :通過 gzip 過濾歸檔
-x 或者 --extract 或者 --get :從歸檔中解壓出文件
-v 或者 --verbose :詳細列出處理的文件
-t 或者 --list :查看歸檔文件中的內容
-p 或者 --same-permissions :使用原文鉛搜耐件的屬性,即屬槐春性不會依據 tar 命令的使用者而改變
注意點:
僅打包,不壓縮:
打包後,以 gzip 壓縮:
打包後,以 bzip2 壓縮:
查詢上述打包文件內有哪些文件,由於打包文件是 gzip 壓縮,所以需要參數 -z :
將 /tmp/etc.tar.gz 文件解壓縮在 /usr/local/src 下:
將 /etc/ 內的所有文件備份下來,並漏段且保存其許可權:
㈧ linux打包壓縮命令tar
linux打包壓縮命令tar的方法如下:
操作設備:戴爾筆記本電腦
操作系統:win10
操作程序:linux主機2.01
1、首先進入到等待輸入shell指令的linux命令行狀態下,如下圖所示。
㈨ linux下把一個文件夾內的文件全部壓縮的shell命令
比如生成的文件是file.tar.gz 你要打包的文件夾是/home/test/下的所有文件,命令如下(最後的星號不要忘記哦)。 tar -cvzf file.tar.gz /home/test/*
㈩ 如何用shell腳本實現 壓縮Linux下某一目錄下的所有文件夾
#!/bin/bash
for dir in `ls --file-type -1`;
do
if [ `echo $dir | grep "/$"` ]; then
dir=`basename $dir`;
tar -zvcf $dir.tar.gz $dir;
fi
done
說明:保存至文件名compress.sh,並置於相應目錄下。
運行./compress.sh(或sh compress.sh)