Saya memiliki skrip batch yang berjalan setiap jam. Terhubung ke server FTP, unduh file cadangan, lalu hapus cadangan terlama (cadangan disimpan selama 4 jam secara default). Ini seharusnya melindungi fasilitas kami dari kehilangan koneksi. Saya mendapat perhatian bahwa sebuah fasilitas kehilangan internet mereka dan tidak dapat menggunakan cadangan ini karena skrip telah menghapus semua yang lama 4 jam setelah koneksi turun. Bagaimana saya bisa memodifikasi skrip ini untuk HANYA menghapus cadangan terlama JIKA yang baru diunduh?
echo off
set FTPADDRESS=[omitted]
set FTPLOGIN=[omitted]
set FTPPASSWORD=[omitted]
set DIRECTORY=[omitted]
set BACKUP_FILE=emar_backup.zip
set DELETE_OLD_FILES_MIN=240
echo cd %DIRECTORY% > commands.txt
echo get %BACKUP_FILE% .\downloads\%BACKUP_FILE% >> commands.txt
echo put receipt.txt >> commands.txt
echo bye >> commands.txt
for /f "tokens=1 delims=" %%A in ('cscript //nologo getdate.vbs') do SET yymmdd_hhmmss=%%A
psftp.exe -2 -batch -b commands.txt -l %FTPLOGIN% -pw %FTPPASSWORD% %FTPADDRESS% > .\logs\lastlog.txt
cd downloads
if exist %BACKUP_FILE% ren %BACKUP_FILE% %BACKUP_FILE%-%yymmdd_hhmmss%.zip
..\DelOld.exe /f=* /m=%DELETE_OLD_FILES_MIN%
cd ..
Terima kasih sebelumnya atas segala hal yang dapat Anda sumbangkan!
Saya bingung bagaimana saya bisa membedakan cadangan LAMA dari BARU. Anda dapat melihat di beberapa baris terakhir bahwa itu mengubah nama cadangan BARU dengan memanggil tanggal / waktu ... jadi jika saya memanggil tanggal dan waktu saat ini di baris berikutnya (juga menambahkan 'jika' untuk penghapusan bersyarat ), tidakkah tanggal / waktu akan salah? DelOld.exe agak mengacaukan seluruh proses, yang saya tidak punya kendali atas.
Wutnaut
Mungkin aku terlalu memikirkan ini. Akankah ini berhasil? jika ada% BACKUP_FILE% -% yymmdd_hhmmss% .zip (.. \ DelOld.exe / f = * / m =% DELETE_OLD_FILES_MIN%)
Wutnaut