您的位置:首页 > 其它

Tar专题

2017-12-07 15:10 10 查看
下面的脚本根据当前的系统时间生成压缩文件名,并备份文件到指定目录:

DIR=/www/webbackup/web/
FILE_NAME=`date +%y%m%d%H`
FILE_NAME=$DIR/oom_$FILE_NAME.tar.gz
echo start backup to $FILE_NAME at `date`
tar zcvf  $FILE_NAME  /www/outofmemory.cn

DIR=/www/webbackup/ugc/
FILE_NAME=`date +%y%m%d%H`
FILE_NAME=$DIR/ugc_$FILE_NAME.tar.gz
tar zcvf $FILE_NAME  /www/ugc

echo finish backup at `date`

http://outofmemory.cn/code-snippet/2189/tar-dabao-backup-directory-shell-script
tar时报错:从成员名中删除开头的"/"
解决办法:
在bash script中先cd到需要使用tar命令压缩文件所在的目标,然后执行tar命令即可:

#!/usr/bin/env bash

DIR=/home/backup
FILE_NAME=`date +%y%m%d%H`
FILE_NAME=${DIR}/front_end_${FILE_NAME}.tar.gz
echo start backup to ${FILE_NAME} at `date`
cd /opt/project
tar zcf  ${FILE_NAME} todoList/
echo finish backup at `date`
find /opt/backup/ -mtime +30 -type f
find /opt/backup/ -mtime +30 -type f |xargs rm -f


今天测试一个打包/var/log下log文件的脚本,但是在执行的时候报错:tar: 从成员名中删除开头的“/”,在反复检测脚本文件后确认没有什么错误,虽然报错,但还是成功进行打包了,如下图:





后来通过查询资料,得知是由绝对路径搞的

也可以在tar命令执行时使用参数P,但解压时也需要使用参数P,否则报错
执行压缩的命令:

tar czPf bak.tar.gz /opt/wx


执行解压缩的命令:

tar xzPf bak.tar.gz

http://blog.51cto.com/firelong/1767457 man tar:

-P, --absolute-names
don't strip leading `/'s from file names




今天尝试编译内核,下载到了一份tar.xz结尾的压缩文件,网上解决方法比较少,不过还是找到了,如下:

$xz -d ***.tar.xz
$tar -xvf ***.tar
可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。
补充:目前可以直接使用 tar xvJf ***.tar.xz来解压
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: