Как скопировать несколько папок и файлов с помощью сценария Backup.sh

Я пытаюсь создать сценарий, который работает при входе в систему, или загрузитесь, который копирует некоторые определенные папки и файлы. Я могу скопировать только последнюю строку"# What to Backup."папка и расположение файлов.

Я могу переместить любое из тех местоположений к последней строке под # What to Backup., и это - все, что скопирует в архив. Есть ли другая команда, которую я пропускаю для сможения завершенный несколько резервных копий другой папки и файлов, или будете, я должен создать a backup.sh для каждого файла/папки я хочу скопировать?

Если я действительно должен создать независимый backup(NAME).sh сценарии я должен буду добавить некоторый тип задержки между каждым запускающим скриптом?

#!/bin/bash
####################################
#
# Backup script.
#
####################################

# What to backup. 
backup_files="/home/wyzer/.config/google-chrome/Default/Local*/kbmfpngjjgdllneeigpgjifpgocmfgmb"
backup_files="/home/wyzer/.config/google-chrome/Default/Favicons*"
backup_files="/home/wyzer/.config/google-chrome/Default/Favicons-journal*"
backup_files="/home/wyzer/.config/google-chrome/Default/Google*.png"


# Where to backup to.
dest="/home/wyzer/Downloads/Scripts/Test_Folder"

# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-TEST-$day.tgz"

# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files

# Print end status message.
echo
echo "Backup finished"
date

# Long listing of files in $dest to check file sizes.
ls -lh $dest

Благодаря Дорическому для того, чтобы предоставить некоторую очень хорошую информацию я смог выяснить, как скопировать файлы, которые я хотел. Оказывается, что я просто должен был сообщить TAR, какая папка должна была быть сохранена. Вот мой Сценарий как есть теперь.

#!/bin/bash
####################################
#
# Backup script.
#
####################################

# What to backup. 
backup_files1="/home/wyzer/.config/google-chrome/Default/Local*/kbmfpngjjgdllneeigpgjifpgocmfgmb"
backup_files2="/home/wyzer/.config/google-chrome/Default/Favicons"
backup_files3="/home/wyzer/.config/google-chrome/Default/Google*.png"
backup_files4="/home/wyzer/.config/google-chrome/Default/Favicons-journal"

# Where to backup to.
dest="/home/wyzer/Downloads/Scripts/Test_Folder"

# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Print start status message.
echo "Backing up $backup_files1 to $dest/$archive_file"
echo "Backing up $backup_files2 to $dest/$archive_file"
echo "Backing up $backup_files3 to $dest/$archive_file"
echo "Backing up $backup_files4 to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files1 $backup_files2 $backup_files3 $backup_files4

# Print end status message.
echo
echo "Backup finished"
date

# Long listing of files in $dest to check file sizes.
ls -lh $dest
0
задан 22 March 2017 в 11:45

2 ответа

Это вызвано тем, что Вы постоянно перезаписываете значение backup_files, поэтому только последний - то, что хранится в переменной.

необходимо сделать это массивом и затем циклом через каждый объект в массиве.

dest="/home/wyzer/Downloads/Scripts/Test_Folder"

#The line below will store multiple folders in an array (files)
files=( "/folder1" "/folder2" "/home/username/anotherfolder" )
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-TEST-$day.tgz"


for i in "${files[@]}"  # For every line in FILES
do # Do the following, starting with the first one:
    # Print start status message.
    echo "Backing up $i to $dest/$archive_file"  # Here, $i will be the first directory
    date
    echo

    # Backup the files using tar.
    tar czf $dest/$archive_file $i # Again, $i is the directory    
done # Stop here and do the loop again with the next item in FILES

# Print end status message.
echo
echo "Backup finished"
1
ответ дан 3 November 2019 в 14:26

Вот то, как код ищет несколько файл/папки, ключ из Сценария, который я предоставил, сообщал TAR, как "проанализировать" папки, которых он создает резервную копию.

Просто добавляют больше backup_filesX= и не забывают добавлять echo "Backing up $backup_filesX to.., если Вы хотите видеть, как это было сохранено.

, Конечно, другой очень важный является строкой TAR, удостоверяются, что добавили к # Backup the files using tar.1 с дополнительным $backup_filesX команды.

Еще раз спасибо к Дорическому для помощи мне. Очень Ценивший.

#!/bin/bash
####################################
#
# Backup script.
#
####################################

# What to backup. 
backup_files1="/home/wyzer/.config/google-chrome/Default/Local*/kbmfpngjjgdllneeigpgjifpgocmfgmb"
backup_files2="/home/wyzer/.config/google-chrome/Default/Favicons"
backup_files3="/home/wyzer/.config/google-chrome/Default/Google*.png"
backup_files4="/home/wyzer/.config/google-chrome/Default/Favicons-journal"

# Where to backup to.
dest="/home/wyzer/Downloads/Scripts/Test_Folder"

# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Print start status message.
echo "Backing up $backup_files1 to $dest/$archive_file"
echo "Backing up $backup_files2 to $dest/$archive_file"
echo "Backing up $backup_files3 to $dest/$archive_file"
echo "Backing up $backup_files4 to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files1 $backup_files2 $backup_files3 $backup_files4

# Print end status message.
echo
echo "Backup finished"
date

# Long listing of files in $dest to check file sizes.
ls -lh $dest
0
ответ дан 3 November 2019 в 14:26

Другие вопросы по тегам:

Похожие вопросы: