Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

Архивируем файлы до 1 мегабайта

Дата: Январь 14, 2010

(0) комментариев

Решение к сожалению не на всех хостингах пройдёт, но в консоли ssh выполнится точно:)
Задача сегодня сделующая: достаточно часто при переносе сайта необходимо сделать резервную копию, в которую будут входить только файлы меньше одного мегабайта

Для решения задачи нам понадобится базовое знание unix команд и немного свободного времени.
Небольшой ман по командам которые нам пригодятся:
find

  • 1
    -name

    — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.

  • 1
    -type

    — тип искомого: f=файл, d=каталог, l=связь (link).

  • 1
    -user

    — владелец: имя пользователя или UID.

  • 1
    -group

    — владелец: группа пользователя или GID.

  • 1
    -perm

    — указываются права доступа.

  • 1
    -size

    — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).

  • 1
    -atime

    — время последнего обращения к файлу.

  • 1
    -ctime

    — время последнего изменения владельца или прав доступа к файлу.

  • 1
    -mtime

    — время последнего изменения файла.

  • 1
    -newer

    — искать файлы созданные позже указанной даты.

  • 1
    -delete

    — удалять найденные файлы.

  • 1
    -ls

    — генерирует вывод как команда ls -dgils.

  • 1
    -print

    — показывает на экране найденные файлы.

  • 1
    -exec command {} \;

    — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.

  • 1
    -ok

    — перед выполнением команды указанной в -exec, выдаёт запрос.

  • 1
    -depth

    — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.

  • 1
    -prune

    — используется, когда вы хотите исключить из поиска определённые каталоги.

tar
tar <операторы> [опции]

  • Операторы:
  • A —catenate —concatenate
  • c —create
  • d —diff —compare
  • r —append
  • t —list
  • u —update
  • x —extract —get
  • —delete

Опции:

  • -C, —directory DIR
  • -f, —file F
  • -j, —bzip2
  • -p, —preserve-permissions
  • -v, —verbose
  • -z, —gzip

Теперь, когда мы знаем команты (вы их тек же можете найти выполнив man tar и man find) можем приступить к написанию нашей команды, котора заархивирует нам все файлы меньше одного метра.

1
find /path -size -1M -type f -exec tar rf archive.tar {} \;

а теперь разберём что эта команда делает.
/path — тут мы указываем путь откуда мы будем искать
- size -1M размер файла в 1 мегабайт
-type f говорим что тап объектов должен быть файл
-exec tar выполняем команду tar для найденых файлов
tar rf archive.tar добавляем в архив с названием archive.tar новый найденый файл

    если вы захотите дополнительно сжать файлы в gzip то простопоменяйте в опциях rf на rzf
    для выполнения архивации из php выполните команду

1
<?system("find /path -size -1M -type f -exec tar rf archive.tar {} \;");?>
a




    Нет комментариев на "Архивируем файлы до 1 мегабайта"

    Нет комментариев.


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов