2010-06-17 2 views
12

Я очень новичок в bash и никогда не закодирован раньше, но эта задача застряла, поэтому нужно избавиться от нее. Мне нужно сделать скрипт bash для создания одного сжатого файла с несколькими dirs.Код сценария bash поможет сделать zip/tar из нескольких папок

Как -

/home/code/bots/ 
/var/config/ 
. 
. 
. 
/var/system/ 

и все будет сжиматься до одного файла /var/file/bkup.[zip][tar.gz]

Заранее спасибо

ответ

37
# tar: (c)reate g(z)ip (v)erbose (f)ile [filename.tar.gz] [contents]... 
tar -czvf /var/file/bkup.tar.gz /home/code/bots /var/config /var/system 

# zip: (r)ecursive [filename.zip] [contents]... 
zip -r /var/file/bkup.zip /home/code/bots /var/config /var/system 
3

Проблема, которую вы описали, не требует сценария bash, всего tar.

tar cvzf /var/file/bkup.tar.gz /home/code/bots/ /var/config/ . . . /var/system/ 
3

Вы можете создать файл Баш для него, если вы намерены запустить его в cronjob, например, и добавить некоторые другие команды, как туздЫшпр заранее

Вам нужно создать файл как backup.sh со следующим содержанием (вы, возможно, потребуется изменить путь к Баш, вы можете найти Баш с whereis bash)


#!/bin/bash 
# 
# Backup script 
# 

# Format: YEAR MONTH DAY - HOUR MINUTE SECOND 
DATE=$(date +%Y%m%d-%H%M%S) 

# MySQL backup file 
MYSQLTARGET="/var/file/backup-mysql-$DATE.sql" 

# Target file 
TARTARGET="/var/file/backup-$DATE.tar.gz" 

# MySQL dump 
# you cannot have a space between the option and the password. If you omit the password value 
# following the --password or -p option on the command line, you are prompted for one. 
mysqldump -u root -ppassword --all-databases > $MYSQLTARGET 

tar -czvf $TARTARGET $MYSQLTARGET /home/code/bots /var/config /var/system 

PS. Это непроверенный код. Это просто пример того, как скрипт bash работает в текущем контексте ответа.

Смежные вопросы