محمد کریمی
دوستدار شبکه و مجازی سازی

آموزش فشرده سازی و ارسال فایل بکاپ به FTP سرور

با سلام ، من برای اینکه بتوانم از ذخیره های برنامه اسکیو ال در مکان های دیگر پشتیبان داشته باشم به فکر نوشتن یک برنامه توسط بچ فایل افتادم و اکنون که این برنامه 3 سال است که به خوبی کار میکند تصمیم گرفتم آن را در این مکان به اشتراک بگذارم .روش کار این برنامه : با اجرای این برنامه در پوشه ای که در آن پوشه پوشه ذخیره بک آپ های اسکیو ال قرار دارد این برنامه توشط برنامه winrar شروع به فشرده ردن فایلهایی می کند که امروز گرفته شده است سپس خود یک بچ فایل دیگر می سازد که با اجرای آن اقدام به ارسال فایل های فشرده به سرور اف تی پی می نماید.این برنامه نام فایل فشرده را ترکیبی از نام شرکت نام بانک و تاریخ ایجاد میکند ، ابتدا کل متن زیر را در یک فایل تکست کپی کنید و بعد از دادن اطلاعات مورد نیاز که از خط دوم شروع می شود آن را با فرمت bat خیره نمائید :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
echo ************* Start in %%B Time is :%time:~0,11%  >batlog\out1.txt	
set Zone=نام شرکت
set FtpIp=آي پي اف تي پي سرور
set Ftpuser=نام کاربري اف تي پي
Set FtpPass=کلمه عبور
set FtpRoot=آدرس پوشه در اف تي ي 
set keepWeek=کدام روز هفته نگه داري شود 
set rarpass=رمز فایل فشرده 

rem ***********        پایان تنظیمات  **************
set mm=%date:~4,2%
set dd=%date:~7,2%
set yy=%date:~10,4%
set Week=%date:~0,3%
set filename=%week%-%yy%-%mm%-%dd%
set BkRoot=%cd%
md batlog
MD FTPBAT
del /s /q FTPBAT\*.bat
echo all bat file in ftpbat is deleted   >>batlog\out1.txt
del /s /q SENDING.BAT
echo  SENDING.BAT is deleted   >>batlog\out1.txt
FOR /f "tokens=*" %%A IN ('DIR *.* /a:d /B') DO (
	set PA=%%A
	REN %%A\%%A_backup_%yy%_%mm%_%dd%_*.BAK %ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK echo The File %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK Exist >>batlog\out1.txt
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK rar a /p%rarpass% %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd% %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK >>batlog\out1.txt
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR del /s /q %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo open %FtpIp%>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo %FtpUser%>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo %FtpPass%>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR if not "%FtpRoot%"=="" echo cd %FtpRoot%>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo mkdir %%A>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo cd %%A>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR if not "%keepWeek%"=="%week%" echo mdelete %ZONE%-%%A-%week%-%yy%-%mm%-%dd%*.rar>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo send %BkRoot%\%%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.rar>>FTPBAT\%%A-ftp.bat
	IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR echo by>>FTPBAT\%%A-ftp.bat
	IF EXIST FTPBAT\%%A-ftp.bat echo ************* This %%A-ftp.bat is Cereted :%time:~0,11%  >>batlog\out1.txt
	IF EXIST FTPBAT\%%A-ftp.bat ECHO call ftp -i -s:%BkRoot%\FTPBAT\%%A-ftp.bat >>SENDING.BAT
	IF EXIST FTPBAT\%%A-ftp.bat ECHO THE %%A-ftp.bat ADD TO SENDING.BAT >>batlog\out1.txt
	echo.>>batlog\out1.txt
	echo.>>batlog\out1.txt
)
GOTO END

:END
copy batlog\out1.txt batlog\%Zone%-%FtpIp%%filename%.txt
call SENDING>> batlog\SENDING%yy%-%mm%-%dd%.txt

سپس این فایل را در پوشه ای که در آن پوشه پوشه بانک اطلاعاتی که توسط برنامه اس کیو ال ایجاد شده است کپی نمائید ،از پوشه برنامه winrar فایل Rar.exe را کنار این فایل قرار دهید حالا با اجرای این بچ فایل برنامه کار خود را آغاز میکند اگر می خواهید که این برنامه کار فشرده نمودن را در یک زمان و ارسال را در یک زمان دیگر انجام دهد خط آخر را پاک نمائید،توجه این برنامه بعد از فشرده کردن فایل اصلی را پاک میکند.- اگر مایل به پاک کردن بعد از فشردن نیستید این خط را غیر فعال نمائید :

IF EXIST %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.RAR del /s /q %%A\%ZONE%-%%A-%week%-%yy%-%mm%-%dd%.BAK

محمد کریمی
محمد کریمی

دوستدار شبکه و مجازی سازی

متاسفانه درس کامپیوتر رو به صورت دانشگاهی نخوندم اما به خاطر علاقه تلاش کردم که با تجربه و مطالعه چیزهایی که نیاز دارم رو یاد بگیرم

نظرات