Архіви потрібні для резервних копій, перенесення сайтів між серверами і завантаження великої кількості файлів одним шматком.
tar.gz — стандарт у Linux
Створити архів каталогу:
tar -czf site.tar.gz /var/www/site
-c— створити,-z— стиснути gzip,-f— ім'я файлу архіву;- додайте
-v, щоб бачити список файлів під час пакування.
Щоб в архіві не зберігався повний шлях від кореня, перейдіть у батьківський каталог:
tar -czf site.tar.gz -C /var/www site
Розпакувати:
tar -xzf site.tar.gz # у поточний каталог
tar -xzf site.tar.gz -C /var/www # у вказаний каталог
Переглянути вміст без розпакування:
tar -tzf site.tar.gz | less
Виключити каталоги
Кеш, журнали й node_modules не потрібні в резервній копії:
tar -czf site.tar.gz \
--exclude='site/wp-content/cache' \
--exclude='site/node_modules' \
-C /var/www site
Швидше і компактніше: zstd
Для великих сайтів стиснення zstd у кілька разів швидше за gzip при кращому стисненні:
tar --zstd -cf site.tar.zst -C /var/www site
tar --zstd -xf site.tar.zst
Може знадобитися встановити пакет zstd.
zip
Зручно, якщо архів потрібно відкрити у Windows. Пакети zip і unzip зазвичай треба встановити: sudo apt install zip unzip.
zip -r site.zip site/
zip -r site.zip site/ -x "site/cache/*"
unzip site.zip
unzip site.zip -d /var/www/
unzip -l site.zip # переглянути вміст
Архів сайту разом з базою даних
mysqldump -u user -p dbname | gzip > db.sql.gz
tar -czf backup-$(date +%F).tar.gz -C /var/www site db.sql.gz
Відновлення бази:
gunzip < db.sql.gz | mysql -u user -p dbname
Автоматичні копії за розкладом — див. «Як налаштувати резервне копіювання на VPS» і crontab.
Інші формати
.gz(один файл) —gunzip file.gz;.tar.bz2—tar -xjf file.tar.bz2;.tar.xz—tar -xJf file.tar.xz;.rar— пакетunrar,.7z— пакетp7zip(7z x file.7z).
Сучасний tar сам визначає тип стиснення під час розпакування: tar -xf будь-який-архів.tar.*.
На хостингу з панеллю архіви можна створювати й розпаковувати у файловому менеджері — без командного рядка.