㈠ 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)