2008-05-30

UNIX way

Прошел примерно год, как пришло какое-то понимание пакетных файлов и скриптов вообще. Сейчас уже автоматизировано очень многое. Недавно набрел на интересную разработку unxutils (стандартные GNU утилиты, собранные под виндой). Ну и сразу некоторое испытание: написать скриптец, который будет ежедневно следить за изменениями в некоторой папке и формировать отчет в rss



SET WORKDIR=%TEMP%\watcher
SET WATCH=C:\temp\base
SET RSS=%WORKDIR%\rss.xml

mkdir %WORKDIR%\snapshots\all
REM делаем снимок
find %WATCH% -ls | gawk -- "{print $11,$7,$10,$8,$9}"  > %WORKDIR%\dir2
REM Ищем разницу
diff %WORKDIR%\dir1 %WORKDIR%\dir2 | grep "^[\<\>]" | sed s/\\\\/\\/g > %WORKDIR%\snapshots\all\%DATE%
del /Q %WORKDIR%\snapshots\*.*
REM копируем 10 последних в папку
for /f %%f in ('ls %WORKDIR%\snapshots\all ^| tail -n 10') do copy %WORKDIR%\snapshots\all\%%f %WORKDIR%\snapshots\%%f

REM Голова rss
echo ^<^?xml version=^"1.0^" ^?^> > %RSS%
echo ^<rss version="2.0"> >> %RSS%
echo ^ >> %RSS%
echo ^Matfaq RSS^</title^>  >> %RSS%
echo ^http://mathfaq.somee.com/index.aspx^</link^>  >> %RSS%
echo ^Lenta^</description^>  >> %RSS%
echo ^rus^</language^>  >> %RSS%
echo ^Sun, 24 Sep 2006 15:00:00 GMT^</pubDate^>  >> %RSS%
echo ^Mon, 02 Oct 2006 03:07:01 GMT^</lastBuildDate^>  >> %RSS%
echo ^http://mathfqa.somee.com/rss.aspx^</docs^>  >> %RSS%
echo ^Zheka Generator 0.000000-e10^</generator^>  >> %RSS%
echo ^i@mail.ru^</managingEditor^>  >> %RSS%
echo ^l@mail.ru^</webMaster^>  >> %RSS%
REM конец головы

for %%f in (%WORKDIR%\snapshots\*) do (
 echo ^  >> %RSS%
 echo ^%DATE%^</title^>  >> %RSS%
 echo ^http://mathfqa.somee.com/rss.aspx^</link^>  >> %RSS%
 echo ^^  >> %RSS%

 sed s/^>/New/g %%f | sed s/^</Deleted/g | sort -r >> %RSS%

 echo ^</list^>^</description^>  >> %RSS%
 echo ^%DATE%^</pubDate^>  >> %RSS%
 echo ^http://mathfqa.somee.com/rss.aspx^</guid^>  >> %RSS%
 echo ^</item^> >> %RSS%
)

REM Хвост
echo ^</channel^> >> %RSS%
echo ^</rss^> >> %RSS%
REM конец хвоста

del /Q %WORKDIR%\dir1
ren %WORKDIR%\dir2 dir1

Thnx to Evgenius за шаблон RSS, с нашего давно почившего сайта