IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Обсуждение программ (http://www.imho.ws/forumdisplay.php?f=3)
-   -   Программы от nnSoft (nnCron, nnCron LITE, nnBackup): проблемы и решения. (http://www.imho.ws/showthread.php?t=23914)

Premium 15.11.2003 00:47

Всем привет. Обычно комп у меня работает каждый день, ежедневный бэкап нужных мне данных - само собой, и для удаления старых копий данных вполне хватает стандартной задачи PURGE-OLD: "d:\backup\имя каталога\*" 3
Есть каталог d:\backup\wmw в который копируются файлы не ежедневно, а вручную, время от времени, иногда раз пять-шесть в неделю, иногда и пару раз в месяц. Как бы мне прикрутить FILE-CREATION-DATE (или может лучше FILE-TIME ?), чтобы nnCron ежедневно проверял каталог d:\backup\wmw ,оставлял три самых новых файла, неважно, когда они созданы, вчера или там пару недель назад, а остальные удалял?

strauss 15.11.2003 01:34

Premium

ну, самый новый/старый файл в каталоге можно отобрать с помощью плагина extreme_files: см. http://www.nncron.ru/download_ru.shtml

Premium 15.11.2003 04:49

Я если честно не знаю как на Форте сказать nnCron-у чтобы он оставлял именно три самых новых файла. В таком виде, если запускать раз в день:
Action:
OLDEST-FILE-TIME: "d:\backup\wmw\*.txt"
FDELETE
nnCron будет удалять каждый день самый старый файл ведь ?
P.S В общем то я уже решил эту задачу немного кривовато:), написал файлик *.vbs который считает кол-во файлов в этой папке и если f.count >3 то создает флаг-файл, а nnCron удаляет этот флаг-файл и удаляет самый старый файл в d\backup\wmw но мне эта задача в таком виде не очень нравится. Вообще голова чего-то сегодня ночью не хочет работать:)))

strauss 15.11.2003 15:41

Premium

Я бы попробовал решить эту задачу "с другого конца". Тебе надо сохранить три самых новых файла. Для этого три раза запускаешь RECENT-FILE* и каждый раз перемещаешь файл во временный каталог. После этого удаляешь оставшиеся файлы и возвращаешь три перемещенных файла назад. Вуаля! В каталоге остались три самых новых файла.

Premium 15.11.2003 23:36

Тоже вариант:). А еще я сделал вариант этой задачи с DIR-SIZE (голова сегодня лучше фурычит), файлы в этом каталоге приблизительно одного размера, вроде тоже работает нормально. А с RECENT-FILE даже пример есть в extreme_files.spf , только я этим плагином не пользовался (нужды как-то не возникало), пока ты не напомнил о его существовании. Спасиб:)
А еще такой вопрос - sid.spf не работает с русскими именами? Или с пробелами? У меня на одном компе у знакомого nnCron не читает ключ в реестре \%SID: Примаков Игорь%\ , а на моем компе \%SID: andreev%\ проглатывает нормально

strauss 16.11.2003 00:18

Premium

Возможно, 'Примаков Игорь' это псевдоним (Full Name), а не реальное имя аккаунта. Посмотреть реальное имя можно в Administrative Tools - Computer Management - Local Users and Groups - Users

Premium 16.11.2003 00:27

Да вроде так у него учетная запись и называется, фамилия-имя полностью... Увижу его - передам, пусть посмотрит. То есть в принципе кириллица и пробелы особой роли в этом случае не играют?

LAndrew2 16.11.2003 22:34

вопрос по nnBackup:
как её заставить Backup'ить данные на CD-RW? она сама будет писать или через внешнюю прогу (у меня - Nero 6)?

strauss 16.11.2003 23:00

LAndrew2

"Ее" - никак, ибо в nnBackup нет средств для записи CD. Но можно поставить внешнюю утилиту, которая позволяет работать с CD как с большими дискетами, например InCD.

maskman 18.11.2003 01:50

LAndrew2
Nero позволяет писать болванки из командной строки. (но это истории для другого топика и другого раздела)
И тогда можно ползоваться уже не nnBacku'ом, а nnCron'ом.

matisse 22.11.2003 13:08

Всем доброго времени суток!
А, кто-нибудь пробовал сделать в WinXP, что-то вроде авто-logon'а?
Например, как делает это Tweak-XP Pro при старте винды.

LAndrew2 22.11.2003 13:15

а можно ли с помощью nnCron как-нибудь переопределить стандартные виндовые комбинации. Хочу, например, чтобы при Win+E у меня открывался Frigate вместо стандартного проводника Винды. Пишу $e - не срабатывает вообще. Думаю, что если бы срабатывало и то, и другое, то можно было бы потом как-нибудь окно проводника и закрыть (хотя было бы лучше, если б только Frigate запускался).
Такое возможно?

strauss 22.11.2003 19:29

LAndrew2

эти хоткеи, похоже, защищены системой и переопределить из нельзя. впрочем, если ты все равно хотел закрывать окно проводника, то что тебе мешает создать задачу, которая при появлении окна проводника будет запускать Fregate и закрывать окно проводника?

maskman 23.11.2003 04:07

strauss
Есть небольшая проблемка.
В нескольких контратабах я назначаю локальную переменную
=== test1.tab ===
SET LOG-FILE=D:\Temp\log1.txt
=============

=== test2.tab ===
SET LOG-FILE=D:\Temp\log2.txt
=============

Потом использую внутри задач.
Все логи пишуться в первый лог.
Может быть я переменные не так назначаю???
Сейчас приходится играться с именами переменных LOG-FILE1 и LOG-FILE2 а как-нибудь избежать этого можно???

strauss 23.11.2003 13:08

maskman

Цитата:

В нескольких контратабах я назначаю локальную переменную
Это не локальная переменная, а локальная переменная окружения. Чувствуешь разницу? Подробности в доке: Работа с программой - Работа с переменными окружения. А про переменные читай в главе "Работа с программой - Работа с переменными, константами и массивами".

Ну, или в example.txt загляни, что ли...

denver 24.11.2003 02:28

Елки палки! Я тут шлю обзор nnCron'а Кэпу, оформленной в виде дикой эйфории, откровенном экстазе и глубочайшей нирване, а все уже оказываются знают про эту софтину :) Мало того, отправил письмо Немцеву, а он оказывается давно участвует в обсуждении на имхе. strauss, я так понимаю Немцев это ты и есть? (чей-та у тебя так мало звездочек? накинул :)) Я тебе письмецо закинул - собственно это не прога, а революшн! Однако пара деталей ее портит - ниочём не говорящая иконка, как то она хило смотрится наравне с триллианом и вотзнью :( Еще почему-то Courier New, повсеместно используемый, на другой шрифт изменить нельзя, что тоже имхо не есть гуд.

В качестве своего вклада в скриптонаписание предлагаю этакий скриптец (не судите строго, я разбирался только полчаса с мануалом):

Код:

#( backup_mailbox
Time: 45 7 * * 1-5 *
Action:
30000 BalloonTime !
2 BalloonIcon !
BALLOON: "Внимание!" "Стартовала задача резервного
 копирования почты. Это может занять несколько минут.
В это время система может работать очень медленно."
StartIn: "C:\Program Files\"
ShowMinimized  NormalPriority
START-APPW: c:\soft\arc\rar.exe f -r0 -y  -mde -m5 e:\backup\thebat.rar "the bat!"
2 BalloonIcon !
BALLOON: "Внимание!" "Резервное копирование успешно
 завершено"
)#

Если кто не понял: каждый понеделник в 7.45 эта штука архивирует изменившиеся файлы каталога Мыши в e:\backup\thebat.rar (сначала необходимо создать полный архив с каталогом "The Bat!" внутри). При этом все сопровождается любимыми мною балунами (которые правда работают только в Win2k и XP). Тока пути надо переписать на свои.

Boy Genius 24.11.2003 12:41

Цитата:

REG-SZ: "registry_path" "string_value"
Устанавливает строковое значение реестра.
Вопрос: если какое-то значение в ветке уже есть, то после выполнения комманды значение перепишется или добавиться новое?

denver 24.11.2003 13:18

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

Premium 24.11.2003 13:24

Maskman
А я не так сделал, я просто создал папку "LOGS" и обьявил ее системной переменной окружения в кронтабе SYS-SET LOGS=D:\PF\LOGS
И настроил все приложения на компе, чтобы они держали свои логи в этой папке и все приложения, запускаемые из командной строки, из батников идут с параметром
%LOGS%\название.log
Удобно, все логи на компе хранятся в одной папке, и DrWEB и wget и blat и rar и все логи бэкапов и ... короче все там. Кажется только nnCron и Outpost держат свои логи в своих папках, им можно :о)
denver
А мне наоборот иконка нравится, простой белый квадратик очень выделяется в трее среди своих зеленых-синих-красных собратьев, не промахнешься.
Boy Genius
Перепишется

Boy Genius 25.11.2003 00:50

denver
Premium
ага, спасибо
Не могу понять как мне по нажатию горячей клавиши изменить ветку регистра. Причём изменить нужно в HKEY_CURRENT_USER
Я что-то прбовал
Код:

REG-SZ: "HKEY_CURRENT_USER\%SID: Boy Genius%\Control Panel\Desktop" "то что нужно изменить"
Но выдаёт синтаксическую ошибку.

denver 25.11.2003 01:31

Boy Genius
Для каждого юзера грузится своя HKCU-ветвь, но для меньшего гемороя никаких аккаунтов в путях нет, просто эти ветви хранятся должно быть в разных файлах и подгружаются в зависимости от залогинившегося юзера. Насколько я понимаю тебе надо залогинится под нужным аккаунтом с загрузкой пофиля и затем просто обращаться к HKEY_CURRENT_USER\Control Panel\Desktop

Если же профиль текущий то и логинится не надо, т.е. просто обращайся к этой самой ветви.

Premium 25.11.2003 02:06

Ты случаем не для смены обоев на рабочем столе по хоткею задачу хочешь написать? Помнится, в той ветке я тоже как-то не мог значения nnCronom изменить, плюнул и стал менять vbscript-ом, значения менялись беспроблемно, только обои все равно не хотели меняться, хотя менял во всем реестре значения, и в HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General и в HKEY_USERS\куча цифр\Software\Microsoft\Internet Explorer\Desktop\General и в HKEY_USERS\куча цифр\Control Panel\Desktop , во всем реестре в общем, а потом на что-то другое переключился (натура, блин, деятельная):) и к этой задаче больше не возвращался. А синтаксическая ошибка - это ты в задаче где-то что-то неправильно написал, запятую там лишнюю или еще что. Всю задачу приведи, если нетрудно.

strauss 25.11.2003 02:19

Boy Genius

Читай доку про работу с реестром:

Цитата:

Не следует пытаться с помощью nnCron вносить изменения в пользовательскую ветку реестра HKEY_CURRENT_USER. nnCron выполняется от имени SYSTEM и не "видит" эту ветку, поскольку в контексте пользователя SYSTEM ветки остальных пользователей располагаются в разделе HKEY_USERS. Под Win2000/XP вы можете воспользоваться плагином sid.spf, чтобы сгенерировать SID-строку и с ее помощью получить доступ к пользовательским веткам HKEY_USERS.
Добавлено через 2 минуты:
denver

Я - не Немцев, я - Кондаков. Что касается иконки, то я (лично) ею доволен - скромно и со вкусом. Если есть иконки лучше - засылай. Что касается шрифта - возможно, появится ключ nncron.ini для работы со шрифтом.

Boy Genius 25.11.2003 02:47

strauss
это я читал, там же из пимера видно, что я пытался как в хелпе. Но не получается. Я потому на это внимание обратил.
Цитата:

denver:
но для меньшего гемороя никаких аккаунтов в путях нет, просто эти ветви хранятся должно быть в разных файлах и подгружаются в зависимости от залогинившегося юзера
А там как раз с этим проблем. Там в хелпе написанно, что так просто эту ветку не поменять.
Цитата:

Premium:
Ты случаем не для смены обоев на рабочем столе по хоткею задачу хочешь написать?
Вооще ты меня раскусил :) Если я прально понял, то
HKEY_CURRENT_USER\Control Panel\Desktop - "ConvertedWallpaper"="C:\\Documents and Settings\\(в моём случае)Boy Genius\\My Documents\\My Pictures\\путь до картинки" будет происходить установка на рабочий стол. Если я, конечно, всё правильно расчитал. И вот эту ветку я и хотел менять, всё время указывая на рызные картинки. Но мне бы для начала разобраться с одной картинкой.

Premium 25.11.2003 04:00

Boy Genius
Из vbscript-а это значение сменить легко, напиши в блокноте:

Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegWrite "HKEY_CURRENT_USER\Control Panel\Desktop\ConvertedWallpaper", "C:\Documents and Settings\Boy Genius\My Documents\My Pictures\картинка.jpg"

сохрани, смени расширение с *.txt на *.vbs и щелкни по файлику мышой два раза. Все, значение поменяно. Только вот картинку на рабочем столе это не сменит

Добавлено через 4 минуты:
Set WSHShell ... это первая строчка
WSHShell.ReagWrite ... и все, что после нее, это вторая длинная строчка, без переносов, это здесь на форуме не влазит в одну строку, в блокноте влезет

maskman 25.11.2003 11:08

Premium
Цитата:

А я не так сделал, я просто создал папку "LOGS" и обьявил ее системной переменной окружения в кронтабе SYS-SET LOGS=D:\PF\LOGS
Спасибо но мне лучше если лог валяется там где и изменения происходят - легче разгребать.

denver
Цитата:

#( backup_mailbox
А чем тебе nnBackup не понравился для этой задаче....
Я только через него все бэкаплю...

Boy Genius 25.11.2003 20:08

Цитата:

Premium:
Из vbscript-а это значение сменить легко, напиши в блокноте:
Я не не знаю, что такое vbscript, он как-то относится к nnCron?
strauss
Как продвигается ГУИ фэйс для nnBackup? Если конечно его вообще делают. Так хочется поюзать ещё одну хорошую прогу. Но консоль - всё таки не моё.

Premium 05.12.2003 10:06

nnCron Help - Условия запуска задачи:

\ выражение '(a OR b) AND c' :
a b OR c AND

а nnCron ругается у меня на строчку :
Rule: PROC-EXIST: "flashget.exe" NOT "wget.exe" NOT OR ONLINE? AND
Мне нужно, чтобы задача выполнялась если я в онлайне и нет процессов flashget-a и wget-a .

Сорри, в таком виде стало выполняться:
Rule: PROC-EXIST: "flashget.exe" NOT PROC-EXIST: "wget.exe" NOT AND ONLINE? AND

denver 05.12.2003 11:16

Premium
Теоретически это должно выглядеть так:

Rule: PROC-EXIST: "flashget.exe" 0= PROC-EXIST: "wget.exe" 0= OR ONLINE? 1= AND

Добавлено через 2 минуты:
Блин, че то я задумался...

Orck 19.12.2003 07:08

nnCron error
 
Win2k sp4 ...
Поставил последнюю бетку nnCron ... пытаюсь запустить, пишет "Системная ошибка 5" ... всё облазил, все права есть, до этого стояла предыдущая бета, всё было в порядке ...
Мож кто что подскажет?

Premium 19.12.2003 09:00

А как лучше всего "бороться" с тем, чтобы некоторые задачи не запускались одновременно? Если бы все проги относились к оперативке и ресурсам компа как nnCron и nnbackup... :-) , но это к сожалению не так, и есть задачи в кронтабах, при выполнении которых загрузка проца под 100% и практически невозможно чем-либо другим заняться :) . Тот же rar к примеру, пакует-обновляет у меня каждый день кучу файлов ~ в 300 Mb архив и пофиг ему какой у него приоритет и что он в фоновом режиме - грузит комп по полной схеме, особенно заметно, если машина не самая сильная. А таких задач, с запуском ресурсоемких приложений, у меня многовато и никак низзя, чтобы они одновременно запускались. Но если в опциях запуска стоит RunMissed (а оно обычно так и есть) и комп не запускал пару-тройку дней, то при старте системы nnCron ессно бросается выполнять все просроченные задачи сразу, что на быстродействии системы отражается не самым лучшим образом, а если комп - совсем смешной целерончик с 64 Mb ОЗУ и таким же смешным процем, есть у меня один такой, пишущая машинка, блин... :-) Каждый раз Rule: настраивать надоело, варьировать, что бы не было "этого" процесса, был "тот", да GetTickCount был таким то... В общем я пока в каждую ресурсоемкую задачу прописал в Rule не запускаться, если существует флаг-файл C:\active.flg и в начале запуска таких задач nnCron выбрасывает такой флаг-файлик, а по завершении задачи удаляет его, типа:

#( task_1
RunMissed
OnceAWeek
Time: * * * * 1 *
Rule: FILE-EXIST: "C:\active.flg" NOT
Action:
FILE-WRITE: "C:\active.flg" "%CUR-TASK-NAME%"
1000 PAUSE
\ тут делаем работу
START-APPW: "proga1.exe"
START-APPW: "proga2.exe"
\ и т.д.
\ по завершении работы удаляем флаг-файл
1000 PAUSE
FILE-DELETE: "C:\active.flg"
)#

#( task_2
RunMissed
OnceAWeek
Time: * * * * 1 *
Rule: FILE-EXIST: "C:\active.flg" NOT
Action:
FILE-WRITE: "C:\active.flg" "%CUR-TASK-NAME%"
1000 PAUSE
\ тут делаем работу
START-APPW: "proga3.exe"
START-APPW: "proga4.exe"
\ и т.д.
\ по завершении работы удаляем флаг-файл
1000 PAUSE
FILE-DELETE: "C:\active.flg"
)#

В общем task_1 и task_2 запустятся, только если нет флаг-файла C:\active.flg и сами же его и выбрасывают на время своей работы. Может есть более элегантное решение какое-нить? Например сложить все ресурсоемкие задачи в один кронтаб и если одна задача из этого кронтаба выполняется, то остальные ждут в сторонке? Только я не знаю, как это реализовать правда... Список всех задач из кронтаба в текстовой файл в столбик я знаю, как получить (vbscript написал такой, на Форте не знаю как делается), nnCron рядом может положить текстовой файл с именем выполняемой задачи
(FILE-WRITE: "current_task.txt" "%CUR-TASK-NAME%")
и как-нить сравнить их, что-ли? С Фортом не очень у меня честно говоря получается подружиться... Или от добра добро не ищут, так и продолжать выкидывать флаг-файл?

Orck 22.12.2003 06:04

Win2k sp4 ...
Поставил последнюю бетку nnCron ... пытаюсь запустить, пишет "Системная ошибка 5" ... всё облазил, все права есть, до этого стояла предыдущая бета, всё было в порядке ...
Мож кто что подскажет?

maskman 23.12.2003 00:25

#( Remove_File
WatchFile: "D:\flag.txt"
Rule: 32. FILE-SIZE: "D:\flag.txt" D=
Action:
см.ниже
GetLastError
)#

В D:\123\ существует файл file.txt.
FILE-COPY: "D:\file.txt" "D:\123\file.txt"
Ошибка стека в Action:
Но файл копируется.

В D:\123\ существует файл file.txt.
FILE-MOVE: "D:\file.txt" "D:\123"
Ошибка стека в Action:
Файл не перемещается

FILE-MOVE: "D:\file.txt" "D:\123\%ss%_%mm%.txt"
Ошибка стека в Action:
Файл перемещается.

FILE-RENAME: "D:\file.txt" "D:\123\%ss%_%mm%.txt"
Ошибка стека в Action:
Файл перемещается.

Где капать чтоб ошибки не было и хотелось бы чтобы FILE-MOVE без
переименования работало

Premium 24.12.2003 06:23

maskman
Цитата:

Action:
см.ниже
GetLastError
)#
А в хэлпе по слову GetLastError окончание задачи выглядит так:
Цитата:

GetLastError
IF MSG: "FILE-CREATE error: %GetLastError%" THEN
)#
то есть, если я правильно понял, еще действие нужно дописать, что nnCron делать-то должен в случае "ашипки" (в хэлпе это IF MSG: и т.д.). Я вот только что попробовал похожую задачу - нормально перемещает без переименования и без ошибки стека в Action.

KpNemo 28.01.2004 10:09

Вообщем есть там команда POP3-Check
хочется вывести в BALLOON результат .
так и пишу мол
#(чекаем_мыло
Action
POP3-CHECK пароли и прочее
IF
BALLOON: "Мыл пришло %POP3-CHECK%"
THEN
)#

Вот.. не выводит он мне там колчиство писем. Какую переменую оно юзает .. куда уходит этот результат от проверки ?
В хелпе написано возвращает или кол. писем на ящеке или просто FALSE

Premium 28.01.2004 11:12

KpNemo
Action:
BALLOON: "%USERNAME%!" "В почтовом ящике писем: %FILE: pop3cnt.txt% "

Кол-во писем он выводит в файл pop3cnt.txt в своем рабочем каталоге. Это если воспользоваться задачей check-new-mail из example.tab . А POP3-CHECK в той задаче в RULE находится .

SyRenity 29.01.2004 01:53

Привет. А может ли nnBackUp делать самораспаковывающиеся zip архивы?

denver 29.01.2004 02:37

SyRenity
В хелпе об этом ничего не сказано. Разве что это недокументированная фича

nibl 29.01.2004 05:51

Какое-нибудь извращение в духе:
-ra "cmd /c copy /b zip.sfx+src.zip dst.exe"

Добавлено через 2 часа и 20 минут:
Цитата:

Цитата:

Premium: Ты случаем не для смены обоев на рабочем столе по хоткею задачу хочешь написать?
Вооще ты меня раскусил Если я прально понял, то HKEY_CURRENT_USER\Control Panel\Desktop - "ConvertedWallpaper"="C:\\Documents and Settings\\(в моём случае)Boy Genius\\My Documents\\My Pictures\\путь до картинки" будет происходить установка на рабочий стол.
Если это еще актуально:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,*{путь до картинки},0/SPIF_SENDCHANGE)
А в реестре пусть система копается.

то есть:
WINAPI: SystemParameterInfo ...
x Z" ..." 0 y SystemParameterInfo DROP

Premium 29.01.2004 10:16

nibl
А почему извращение? :) Опция -ra специально для похожих закидонов и сделана, мало-ли что юзеру в голову придет запустить после бэкапа. Юзеры - они такие, им только дай че-нить запустить :) Я в zip-архивы не бэкаплю, но мне кажется для этого подойдет консольная утилитка ZIP2EXE(около 30 Кб сама) из пакета PK250DOS http://www.pkware.com . Она преобразовывает *.zip архив в *.exe добавляя sfx-модуль всего-навсего 3150 байт, и ложит полученный экзешник рядом с архивом. Какой-нить бат-файл запускать после бэкапа, типа:
start /w zip2exe.exe -j имяархива.zip
del имяархива.zip


Часовой пояс GMT +4, время: 08:57.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.