Где хранятся временные файлы 7zip
Я пытаюсь создать резервный скрипт с 7-Zip. Я уже все сделал, но эти две проблемы все еще блокируют меня.
Во-первых, я хочу добавить метку времени с датой создания, например: 3.11.2010 Backup.7z
Итак, формат dd.mm.yyyy . Я перепробовал несколько версий, найденных в интернете, но ни одна из них не работала так, как я хотел. Что я должен делать?
Во-вторых, я хочу добавить только последнюю измененную папку в архив (независимо от того, сколько папок существует в каталоге; мне просто нужна последняя). В принципе, у меня есть что-то вроде этого:
Поэтому я хочу добавить только самую новую (1.0.0.5) папку. Эти папки меняются и всегда имеют разные имена, поэтому сортировка по именам была бы плохой идеей.
Решение
Доброго дня!
Попробовал на основании рекомендации создать бат файл для ежедневного архивирования файлов, архив создает, но пустой. Может кто то знающий помочь бедолаге?
Бат файл:
Через планировщик команду напрямую выполняет:
"c:\program files\7-Zip\7z.exe" a -tzip C:\Users\Public\Documents\PTO_arhive\archive_%date%.zip Y:\ПТО_файлы
но без даты, и если у кого то по сети файл открыт, этот файл не сохраняется.
В идеале нужен сохраненный архив с текущим числом месяца, что бы в папке сохранялось архивов за 31 день.
Спасибо vavun. Настроил, вроде как работает. Пока не понятно в какое время будет создаваться резервная копия и куда встала программа. Папка Backup с файлами какими то у меня на диске С появлялась пока настраивал, я ее удалял. Теперь все настроил а Backup найти не могу, резервные копии создаются как то, может быть без нее. Парадокс! Как все получится, отпишусь.
Что то не хочет архивировать. Вручную запускаю, все архивируется, ежедневной архивации нет. Я файл ini немного подрезал лишнее убрал. Может что то лишнее убрал?
[Config1]
Snapshots = 3
CompareSize = 0
Source = Y:\ПТО_файлы
Backup = C:\Users\Public\Documents\PTO_arhive
Добавлено через 3 часа 0 минут
Ну вот теперь планировщиком запускаю LightBackup.exe по времени и все копии сохраняются. Только не пойму, так это надо делать или LightBackup.exe сам должен как то сохранять копии?
Для наступления полного и тотального счастья в плане бэкапов информации на рабочем сервере решил отказаться от Acronis True Image в пользу обычной архивации данных с помощью 7-Zip.
Для выполнения поставленной задачи естественно использовал консольную версию архиватора.
После непродолжительного курения манов комманда приняла следующий вид:
7za.exe a -tzip -ssw -mx7 -r0 -x@exclusions.txt full_path_for_the_archive working_dir
Поподробней об использованных ключах:
-tzip формат архива установлен в zip, без этого ключа умолчальный формат 7z;
-ssw принудительная упаковка файлов, которые в данный момент открыты для записи (мало ли кто-то засиделся на работе и что-то там правит);
-mx7 высокая степень сжатия (7), можно поставить и 5 (нормальное сжатие), тогда процесс пойдет побыстрее;
-r0 (это ноль, а не буква О) исключения, которые будут прописаны дальше обрабатываются только в рабочем каталоге;
-x@exclusions.txt это собственно говоря файл со списком исключений, которые не будем архивировать. Каждая строка файла — новое исключение. Можно использовать маски типа *.ext и т.п. Если исключение не много, то можно обойтись и без файла, в таком случае ключ примет следующий вид: -x!*.ext;
full_path_for_the_archive это соответственно путь и имя нового архива;
working_dir это папка, которая подлежит упаковке.
Для пущего удобства можно использовать в имени архива %date%.
В связи с тем, что архивировать нужно разные папки в разные архивы, объемами 10-15 гигов, то резонно использовать последовательность команд, дабы не создавать кучу правил в планировщике и не думать сколько времени займет весь этот процесс. Соответственно для этих целей использую объединение команд с помощью &&. Если использовать &, то все команды будут выполняться одновременно, что меня никак не устраивает, с && — последовательно при удачном завершении предыдущей команды.
Помимо всего прочего желательно иметь логи, чтоб быть в курсе, а не случилось ли чего. Это можно легко реализовать с помощью инструкции '>>', которая сохраняет вывод в консоль в текстовый файл. Однако проблема в том, что 7zip вываливает в консоль кучу информации, в том числе и об архивации каждого нового файла. Очевидно, что на объемах в несколько тысяч файлов вся эта инфа в логах нужна как мертвому припарок. Соответственно требуется исключить все ненужные строки, оставив те, где есть информация о названии создаваемого архива, результат архивации и информацию об ошибках, коли таковые появятся.
Тут на помощь приходит команда FINDSTR. В моем случае она принимает следующий вид:
findstr /P /I /V «Compressing 7-Zip»
Сначала пара слов об использованных ключах:
/P пропускает строки, содержащие непечатные символы;
/I на всякий случай игнорирую регистр букв;
/V " " непосредственно перечень слов для поиска в строках и последующего исключения этих строк.
В итоге на выходе этой команды имеем 3 строки:
Creating archive archive_name
Everything is Ok
А потом закатываю все в текстовый файл, для последующего изучения:
findstr /P /I /V «Compressing 7-Zip» >> log_file
Теперь дело за малым. Нужно зафутболить все три блока в одну последовательность команд:
7za.exe a -tzip -ssw -mx7 -r0 -x@exclusions.txt full_path_for_the_archive working_dir | findstr /P /I /V «Compressing 7-Zip» >> log_file.%date%.txt
Почему 7-zip / WinRAR распаковывают файлы в "temp" перед тем, как переместить их в место назначения?
Я не вижу никаких преимуществ по сравнению с прямым распаковыванием в пункт назначения. Это действительно раздражает, особенно для больших файлов (как сейчас!).
Пожалуйста, объясните, почему они не сделаны на месте.
4 ответа 4
Создайте архив с DD.MM.YYYY Backup.7z Format.
Объяснение: Повтор %DATE% печатает дату в региональном формате даты.
Используя ~x,y спецификатор, вы делаете извлечение строки в строку / подстроку - где x - начальный символ и y количество символов, которые вы хотите извлечь.
По вашему второму пункту:
Я только хочу добавить последнюю измененную папку в архив (независимо от того, сколько папок существует в каталоге, мне просто нужна последняя).
должен сделать это.
Вы можете использовать "Инструментарий управления окнами". Увидеть этот
Текущая дата 20140202145547.557000+060
Независимо от ваших "региональных настроек" (формата даты) в "Панели управления" всегда возвращается ГГГГММДД.
В командной строке 7zip не будет логики для выполнения нужных вам задач. Если вы работаете в Linux, вам придется выяснить, как это сделать, в вашем сценарии оболочки. Если вы работаете в Windows, вы можете поэкспериментировать с пакетным языком DOS (который МОЖЕТ быть достаточно мощным), powershell (который требует установки чего-либо) или написать файл vbscript (.vbs), который должен быть довольно хорошим решением.
Что я сделал, чтобы получить файлы, которые изменились в тот день, так это использовать Robocopy для копирования вновь измененных файлов во временный каталог, а затем 7zip.
РЕДАКТИРОВАТЬ:
С самого начала хочу сказать, что я не пакетный ниндзя, но, читая сайты, я смог собрать вместе что-то, что, кажется, работает достаточно хорошо. Я не программист, но я "компьютерный парень", так что я просто знаю больше, чем большинство, с кем я работаю.
Вот сценарий, который я использую. Формат даты отличается от того, о котором вы просили, выбрал ГГГГ-ММ-ДД, потому что тогда все будет хорошо в Windows Explorer. Вы должны быть в состоянии изменить это так, как вы хотите, чтобы вещи были помечены
Часть скрипта /maxage:1 - это то, что ограничивает то, что изменилось за день. Я запускаю скрипт резервного копирования ежедневно.
Одна проблема, которую я не исправил в сценарии, - это то, что если файлы не были изменены, файл 7z размером 32 КБ все еще создается (пустой архив 7z). Я планировал добавить обнаружение пустых каталогов или, если ничего другого, не сделать хеш и сравнить с пустым хешем архива 7z, а если совпадение, то удалить только что созданный пустой архив 7z.
В моем сценарии полного резервного копирования у меня есть сценарий хэширования архива, поэтому я могу вручную сравнить хэши двух последних полных резервных копий, чтобы определить, совпадают ли они. (При наличии такого сценария не будет обнаружено, были ли удалены файлы, потому что при добавочном резервном копировании не будет добавлено ни одного файла.) Если текущий хэш и предыдущий хэш совпадают, я удаляю новейшую резервную копию, потому что с тех пор ничего не изменилось. (Я планировал автоматизировать проверку того, успел ли я.)
Я надеюсь, что очистив скрипт (удалив имена серверов и т.д.), Я не сломал его, и у меня никогда не было много времени, чтобы отладить скрипт, чтобы он был сырым. В любом случае, я надеюсь, что будет достаточно, чтобы начать работу в правильном направлении к сценарию, который будет соответствовать вашим требованиям.
Если вам нужны какие-либо разъяснения по поводу переключателей или почему я выбрал переключатели, которые вы выбрали, не стесняйтесь спрашивать.
Случилась такая ситуация, на основном разделе из 20 гигов осталось 300 с хвостиком метров.
Юзал 7Zip, открывал им архив, находящийся в архиве. Начал открывать, выдал ошибку, повис.
Я его прибил из диспетчера, смотрю на C:\, место по нолям. Захожу в Windows\Temp там 100 килобайт.
Куда 7Zip засунул свои временные файлы, чтобы я их мог удалить? Облазил пол диска не нашёл, сайты
еле прогружаются из-за постоянного ноля на основном разделе, приходится очищать кеш после
каждого захода на сайт. Буду благодарен за своевременную помощь.
Подскажите архиватор под dos
Не завалялся ли у кого какой нибудь архиватор под dos чтоб на дискету влез или подскажите где.
Чтение файлов из архива 7zip
Как вывести содержимое текстового файла, находящегося в архиве *.7z, в memo и картинку в image не.
Архиватор файлов
Доброго времени суток, есть такой архиватор, проблема в том что он не совсем корректно добавляет.
>Quiet Snow, ВключИте отображение скрытых файлов - C:\Documents and Settings\Пользователь\Application Data
dosean, искал я в этих директориях, скрытые файлы у меня всегда отображаются, после вашего
совета понял что надо искать тщательнее, искал больше часа, смотреть нужно не в Application Data.
Вот путь:
C:\Documents and Settings\Пользователь\Local Settings\Temp
и удалять директории с названиями начинающимися на 7Z, к примеру:
. . и т.д.
В итоге освободил больше гигабайта, прикиньте, место кушалось впустую))), короче спасибо
dosean.
Рекомендую всем после установки системы сразу установить переменные окружения TEMP и TMP в заранее созданную временную папку (в настройке системы). Причем размещение ее может быть в наиболее удобном месте, например, на специальном небольшом "мусорном" винте (это ускорит работу и уменьшит износ основного HDD). Обычно при настройке компов ставлю юзерам "C:\Temp" и объясняю чтобы чистили периодически эту папку.
Туда же (на отдельный винт NTFS) можно зафигачить и файл подкачки, при этом запретить его размещение на других винтах. Нужно следить, чтобы на диске со свопом и временными файлами всегда было достаточно свободного места (минимум 4Gb) чтобы избежать непонятных проблем с программами (как 7Zip у "тихого снега").
Архиватор файлов
Добрый день! Я начал изучать язык C, прочитал книгу Дейтела "C для программистов" и для закрепления.
7z архиватор - не правильная маска файлов
Добрый день имеется такой cmd файл: erase "D:\111\test.zip" "C:\Program Files\7-Zip\7z.exe" a.
Удаление временных файлов
Подскажите, пожалуйста, как удалить временный файл, созданный так: string temp =.
Очистка временных файлов
Имеется php-скрипт, который создает в постоянной директории множество временных (с уникальными.
На sql-сервере он архивирует бэкапы и делает им название по дате.
Мне необходимо к дате добавить еще и время
Я нагуглил что это ключ %time% вот только куда его засунуть никак не пойму.
BAT: получить дату создания/модификации файла и добавить в имя архива
Есть в папке файл, который нужно будет архивировать винраром. Знаю, как создать архив с текущей.
Архивирование только изменённых документов в архивы с именем, содержащим имя сотрудника и дату создания архива
Дали вот такое задание. Само задание: Дано: Папка с рабочими файлами сотрудников.
Разархивация последнего по дате создания архива
Добрий день! есть скрипт которий делает разархивацию последнего(по дате создания) архива, но.
4 ответа 4
Как именно вы распаковываете файлы? Вы используете командную строку или графический интерфейс? Вы перетаскиваете файлы или выбираете их и используете функцию извлечения? Вы используете контекстное меню расширения оболочки?
Если вы вводите папку назначения, а затем выбираете функцию извлечения или используете расширение оболочки, то они сначала не извлекаются во временную папку, они извлекаются непосредственно в место назначения.
Если вы выберите файлы в пользовательском интерфейсе и перетащите их в целевую папку, то они будут извлечены во временную папку.
Причина в том, как выбран пункт назначения. Если вы входите в целевую папку или используете пункт контекстного меню, то программа точно знает, куда ее нужно извлечь. Однако если вы просто перетаскиваете файлы, то из-за того, как работает функция перетаскивания OLE , программа не знает, где находится целевая папка. Другими словами, именно Explorer получает целевую папку, а не программу архивирования. В результате программа не может знать, где их извлечь, и поэтому просто извлекает их во временную папку, а затем Explorer перемещает их, как только это будет сделано. Вы можете ясно видеть это, извлекая большой файл, используя оба метода. Когда вы перетаскиваете его в папку, он извлекает, а затем вы видите стандартный диалог операций с файлами в Проводнике, перемещающий его в папку. Если вы укажете папку и нажмете «Извлечь», она будет извлечена, и дальнейшая обработка не производится.
Не стесняйтесь просматривать исходный код 7-Zip, чтобы увидеть, как обрабатывается местоположение извлечения.
Я научился этому нелегко несколько лет назад, когда хотел внедрить перетаскивание в программу, которую я писал.
Читайте также: