linux打包备份文件夹,Linux下使用Bash脚本备份并打包文件夹

最近在更新博客代码的时候,总会一不小心把本地的一些配置或是本地才用的参数传到线上去(有时更新代码太多,git打包后也不会一一去看)。上传后发现有问题,但是本地又没有线上的配置备份。这下就呵呵了。

今天写了个bash脚本测了一下,还行。

测试目录

/mnt/hgfs/www/t

t文件夹目录结构.

├── backup

│   ├── b

│   ├── simp.css

│   └── t

│       ├── bb

│       └── test.txt

├── index.html

├── jquery.min.js

└── nobackup

├── q

│   └── x.txt

└── web.css

bash文件(backup.sh)#!/bin/bash

#要备份的目录位置(不包含该目录)

backupPath=/mnt/hgfs/www

#备份的目录名称

backupFileName=t

#不备份的目录名称(或文件)

noBackupFileNameArr=("nobackup" "backup/t/bb" "backup/b" "backup/t/test.txt")

#保存位置

savePath=/root

#保存的包名,名称 如:2017-11-07-jam00.tar.gz

saveName=$(date +%Y-%m-%d)-jam00.tar.gz

#===================以下勿改=========================

pathStr=""

for v in ${noBackupFileNameArr[@]}; do

pathStr="$pathStr --exclude=$backupFileName/$v";

done

#只保留最近七天的备份

oldBackup=$savePath/$(date -d "7 days ago" +'%Y-%m-%d')-jam00.tar.gz

rm -f $oldBackup

cd $backupPath

tar $pathStr -zcf $savePath/$saveName $backupFileName

注释已经很详细了,这里说明下 noBackupFileNameArr 这个参数

这是不备份的文件夹和文件,可用于缓存目录,运行日志之类的文件夹

nobackup,backup/t/bb,backup/b,backup/t/test.txt

都是在文件夹 t 下面的,要写好完整的路径,用双引号包裹,且用空格隔开

运行 backup.sh (记得添加运权限 -- chmod +x )

在/root下生成了一个打包文件 2017-11-07-jam00.tar.gz ,解压后查看目录结构.

├── backup

│   ├── simp.css

│   └── t

├── index.html

└── jquery.min.js

所列的不备份文件和文件夹都没备份,ok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值