Salah satu tugas yang paling bermasalah bagi rata-rata pengguna adalah mencadangkan di Windows, yang akan memastikan penutupan masalah berikut ini:
- cepat (sempurna di latar belakang);
- Itu akan menjaga versi file saat ini dan yang sebelumnya;
- penyimpanan file tidak akan dapat diakses oleh virus atau bencana alam seperti perusakan media atau pencuriannya;
- isi dari salinan cadangan hanya dapat diakses oleh pengguna, yaitu dilindungi kata sandi.
Ada banyak saran untuk ini, tetapi tidak satupun dari mereka menyelesaikan tugas. Penyalinan yang mudah dan sederhana tidak memberikan kecepatan, penghematan yang cepat tidak memberikan keandalan, menyalin ke hard drive eksternal tidak menjamin pencuriannya.
Namun, untuk waktu yang lama ada alat untuk menyelesaikan masalah. Hal utama adalah menerapkan dengan benar cara Unix dan file batch. Dan opsi termudah adalah mengarsipkan file dalam satu arsip dan mengirimkannya ke penyimpanan online menggunakan baris perintah. Untuk mempercepat pekerjaan, tugas dibagi menjadi 2 tahap - pertama arsip lengkap dibuat dan dikirim ke penyimpanan online, kemudian arsip tambahan dibuat sesuai kebutuhan, yang memberikan kecepatan. Enkripsi arsip memastikan keamanan data.
Apa yang dibutuhkan untuk menyelesaikan masalah:
- Akun Yandex untuk mendapatkan akses webdav ke disk Yandex. Penggunaan penyimpanan lain tidak dilarang;
- 7z - pengarsip konsol, didistribusikan secara gratis;
- curl - alat konsol untuk bekerja dengan Internet, didistribusikan secara gratis.
Untuk
portabilitas , saya meletakkan
7z.exe ,
7z.dll dan
Curl.exe dalam satu direktori. Bergantung pada bagaimana
Curl.exe dikompilasi, mungkin perlu menempatkan
libeay32.dll ,
libssh2.dll ,
msvcr100.dll ,
MSVCR110.dll perpustakaan terdekat atau menambah sistem.
Lebih lanjut dalam direktori ini, diinginkan untuk membuat direktori di mana Anda ingin meletakkan file dan direktori untuk arsip masa depan. Saya menyebutnya
"cadangan" dan saya meletakkan tautan keras ke file atau tautan direktori ke dalamnya (fungsionalitas yang sesuai dalam JAUH menggunakan kombinasi tombol Alt + F6). Dengan demikian, saya dapat, tanpa mengubah struktur data yang ada, membuat struktur yang nyaman bagi saya untuk cadangan.
Direktori selanjutnya adalah
temp . Dirancang untuk menyimpan arsip data sebelum mengirimnya ke server. Pada saat yang sama, itu akan menjadi salinan terenkripsi dari data saat ini, yang menyediakan cadangan tambahan jika terjadi serangan virus.
Kemudian di direktori sumber Anda perlu membuat file bat (cmd) yang cukup sederhana
"full.bat" dengan konten berikut:
@echo off set filebkp=work set pathbkp=backup set srvbkp=https://user:password@webdav.yandex.ru/backup/%filebkp% set pathtemp=temp set full=%filebkp%-full del /F /Q "%pathtemp%"\ 7z.exe a "%pathtemp%\%full%".7z -x!*.log; -r -mx1 "%pathbkp%\*" -ppass_for_archive curl.exe -k -X DELETE "%srvbkp%" --verbose -o .\stdout curl.exe -k -X MKCOL "%srvbkp%" --verbose -o .\stdout curl.exe -k -T "%pathtemp%\%full%".7z "%srvbkp%"/ --progress-bar --verbose -o .\stdout
- set filebkp = work - atur nama umum komputer dan jalur di server tempat cadangan akan disimpan. Karena mungkin ada beberapa komputer, maka itu dapat berupa salinan cadangan dari komputer yang berfungsi (kerja), rumah (rumah), laptop (buku), menunjukkan nama individu tidak akan memungkinkan salinan untuk saling bercampur.
- atur pathbkp = cadangan - mengatur jalur ke direktori tempat data untuk cadangan disimpan, dalam hal ini direktori dengan tautan keras dan tautan direktori yang seharusnya Anda buat sebelumnya ditunjukkan.
- set srvbkp = https: // user: password@webdav.yandex.ru/backup/%filebkp% - tentukan direktori di server tempat cadangan akan diunggah. pengguna dan kata sandi - kata sandi dari akun Anda di Yandex;
- set full =% filebkp% -full - atur nama arsip terlebih dahulu.
- del / F / Q "% pathtemp%" \ - hapus (hapus) direktori sementara
- 7z.exe a "% pathtemp% \% full%". 7z -x! *. Log; -r -mx1 "% pathbkp% \ *" -p pass_for_archive - baris peluncuran pengarsipan. pass_for_archive - Kata sandi Anda untuk arsip.
- curl.exe -k -X DELETE "% srvbkp%" --verbose -o. \ stdout - hapus direktori tujuan di server.
- curl.exe -k -X MKCOL "% srvbkp%" --verbose -o. \ stdout - membuat ulang direktori tujuan di server.
- curl.exe -k -T "% pathtemp% \% full%". 7z "% srvbkp%" / --progress-bar --verbose -o. \ stdout - unggah arsip curl ke server.
Dengan demikian, dengan menjalankan skrip
"full.bat" , Anda akan menerima versi lengkap dari file Anda di arsip di direktori
"temp" dan sama di direktori
"backup / work" di server, dienkripsi dengan kata sandi Anda. Ini mungkin memakan waktu dan memiliki batasan pada volume arsip, tetapi data perubahan harian yang paling penting dan sekaligus harus diarsipkan dengan cara ini.
Mengapa penting dan berubah setiap hari? Karena skrip berikut,
"inc.bat" , memungkinkan Anda untuk menemukan dan mengirim data yang dimodifikasi ke server dalam arsip tambahan yang berbeda dari versi lengkap:
@echo off set filebkp=work set pathbkp=..\backup set srvbkp=https://user:password@webdav.yandex.ru/backup/%filebkp% set pathtemp=..\temp set full=%filebkp%-full set inc=%filebkp%-inc set h=%TIME:~0,2% set m=%TIME:~3,2% set s=%TIME:~6,2% set ms=%TIME:~9,2% set curtime=%h%-%m%-%s% set dd=%DATE:~0,2% set mm=%DATE:~3,2% set yyyy=%DATE:~6,4% set curdate=%yyyy%-%mm%-%dd% set curdatetime=%curdate% %curtime% 7z.exe u "%pathtemp%\%full%".7z -x!*.log; -u- -up3q3r2x2y2z0w2!"%pathtemp%\%inc%".7z "%pathbkp%\*" -ppass_for_archive ren "%pathtemp%\%inc%".7z "%inc% %curdatetime%".7z curl.exe -k -T "%pathtemp%\%inc% %curdatetime%".7z "%srvbkp%"/ --progress-bar --verbose -o .\stdout
Saya pikir Anda dapat mendekripsi file ini sendiri - menggunakan 7z, skrip menganalisis arsip lengkap dan direktori sumber di direktori
temp , menemukan file yang diubah, mengemasnya dalam arsip tambahan yang dinamai dengan tanggal dan waktu saat ini, dan mengirimkannya ke server. Jadi, jika cadangan penuh membutuhkan waktu 1 gigabyte dan 3 menit, maka file yang dimodifikasi biasanya membutuhkan 10-50 megabyte dan terbang ke server dalam beberapa detik. Dengan menempatkan
"inc.bat" di Penjadwal Tugas Windows, Anda akan memungkinkan proses ini terjadi sesuai dengan jadwal pada waktu yang nyaman bagi Anda, yang akan memungkinkan Anda untuk melupakannya.
Ketika Anda merasa bahwa waktu untuk membuat salinan tambahan menjadi terlalu lama, Anda dapat menjalankan
"full.bat" lagi - ini akan menghapus semua direktori dari arsip penuh dan tambahan dan membuat versi baru dari versi lengkap.