제목 : 스냅샷 frontend SnapShotBR.ahk 테스트
지후빠안녕하세요?
청락님 snapshot onekey command 를 제 방식으로 조금 다르게 접근해봤습니다.
- 청락님 게시물; https://windowsforum.kr/review/16866264
청락님이 이미 비슷한 글을 올리셔서 망설이다... 넓으신 마음으로 포용해주시리라 믿고 올려봅니다.
혹, 철퇴를 맞으면 바로 내릴 수도 있습니다.ㅠㅠ 사실, differential backup 때문에 해보게 되었습니다.
과거 snapshot으로 다른 ssd에 복원시 부팅이 안되는 문제를 겪어서 snapshot에는 관심이 없었는데 차등 백업이 눈에 들어와서...
SnapShotBRahk.zip 에는 네개의 파일이 있습니다.
- snapshot.exe ; 공홈 http://www.drivesnapshot.de/en 에서 받은 32비트용
- snapshot64.exe ; 공홈 http://www.drivesnapshot.de/en 에서 받은 64비트용
- SnapShotBR.ahk ; autohotkey 스크립트 (컴파일된 exe는 댓글에 누가 좀 올려주시면 좋겠습니다.^^ 바이러스 오진 나올거라서...)
- snapshotbr.dll ; 아이콘 dll
[사용법]
스크립트 실행하면 아래처럼 메뉴가 나타나고 다른 곳을 클릭해서 메뉴가 사라지면 F1으로 다시 호출, 마우스 커서 위치에서 실행됩니다.
- Exit를 클릭하면 트레이에서도 완전히 종료합니다.
- 백업 파일 생성은 스크립트가 있는 폴더에 만들어지므로 C드라이브를 제외한 fixed 드라이브에 위치시키십시오.
- 두번 같은 PC에서 테스트 하였습니다. 상대적으로 테스트가 충분치 않습니다. 테스트후 사용하시기 바랍니다.
확인 과정을 없앴기 때문에 실행하는 즉시 추가 물음 없이 진행됩니다. 주의 하시기 바랍니다.
최초 실행시 full backup만 활성화; 풀 백업을 먼저 실행합니다.
풀 백업 완료
풀 백업이 한번 실행되면 나머지 메뉴가 활성화됩니다.
풀 백업후 diff Backup이 활성화되고 하위 메뉴에 해쉬 파일이 나타나고, 클릭하시면 diff backup 시작합니다.
Restore 메뉴에 백업된 파일이 보이고, 해당 파일 클릭하면 바로 복구하는 단계로 진입합니다. 여기서는 확인 메세지를 넣었어야 했는데...
Mount 메뉴에서 파일을 클릭하면 S 드라이브에 마운트합니다. 사용중인 드라이브이면 스크립트에서 수정을... 이것도 시간상 S로 강제 할당...
diff backup에서 hash파일 클릭하면 바로 differential backup을 합니다.
diff backup 완료
diff backup 본도 restore에 나타나고, C_full 클릭하면 처음 백업했던 상태로, C_diff 클릭하면 나중에 추가 백업한 상태로 복원됩니다.
처음 백업했던 c_full 클릭하면
재부팅합니다.
이런 화면에서 계속 뱅글뱅글 돌기만... hdd led는 열심히 깜박이네요.
잠깐 방심한 사이에 또 재부팅되고 있습니다.
바탕화면에 "새 폴더" 여러개 만들어 뒀는데 모두 없어진 것을 보니 복원된 것 같습니다.
마운트 메뉴에서 해당 파일 클릭하면 S드라이브 마운트 해제후 해당파일로 다시 마운트합니다.
잠깐 기다리시면 탐색기가 열립니다.
주말에 타지에 있을 것 같아서 급하게 골격만 만들어 올립니다.
추가 확인 메시지나 드라이브 문자 설정, 단축키 설정등은 원하시는 방향으로 수정해서 사용해보시면 좋겠습니다.^^
혹 오류 발견시 댓글에 올려주시면 수정토록 하겠습니다.
ps. 풀 백업본을 여러개 만들수 있고, 각 풀 백업본에 차등 백업본을 여러개 추가할 수 있습니다.
댓글 [27]
지후빠
- 2021.10.30
- 01:40:50
아이고~ 먼저 여쭈고 올렸어야 했는데... 좀 눈치가 보입니다. 귀엽게 봐주십시오. ^^
청락님 편히 주무십시오. 저도 내일 장거리 운전이라... 그만 자야겠습니다.ㅎ~
내꼬
- 2021.10.30
- 16:47:36
이미 알려진 기능을 누가 시도 했다고 문제되는 부분은 없습니다.
좀더 나은 방향으로 각자의 길을 나아 가는게 보기 좋습니다.
수고하셨습니다.
지후빠
- 2021.10.30
- 07:42:00
아침에 생각하니, 오토핫키 없으신 분들을 위해 컴파일 버전을 올려야 겠다고 생각해서 만들고 들어왔더니 AutoMP3님이 이미 올리셨네요.
감사합니다.^^ 저도 이왕 만든 것이니 첨부해봅니다. SnapShotBR.exe
호환성을 위해 32비트로 컴파일했고, 아이콘 적용, MPRESS 압축했습니다. 압축은 바이러스 오진 가능성이 좀 더 높습니다.ㅜㅜ
내꼬
- 2021.10.30
- 17:19:07
SnapShotBR.exe (해당링크 우클릭 다름파일로 저장 하세요)
1. 64비트 전용 컴파일
2. 바이러스 오진 2개(위 그림 클릭시 바이러스 토탈 이동)
3. C 드라이브 백업/복구 정상 완료시 GUI 자동 종료
- 첨부 :
- SnapShotBR.exe [File Size:605.1KB/Download203]
- 2021-10-30_171656.png [File Size:30.4KB/Download5]
지후빠
- 2021.11.01
- 01:00:06
수고하셨습니다. ^^
이제 귀가하여 답이 늦었습니다. 볼륨명에 스페이스 포함을 고려하여 다음처럼 해보시기 바랍니다.
DriveGet, label, Label, C:
lable := StrReplace(label, A_Space, "_")
FormatTime, D_T, %A_Now%, yyMMdd_HHmm
RunWait, %SnapShot% -G -R -L999999 c: $disk_%label%_full_%D_T%.sna
다음이 이름을 정의하는 부분입니다. 필요에 따라서 수정하시기 바랍니다.
$disk_%label%_full_%D_T%
$disk 는 C를 표시
%label% 은 드라이브 볼륨명을 스페이스를 언더바(_)로 치환한 형태로
%D_T% 일자_시각 형태입니다.
지후빠
- 2021.11.01
- 11:21:39
볼륨 이름 없을때를 감안해서 다음처럼 해도 좋을 것 같습니다. C_ 문자도 빼고요.^^
DriveGet, label, Label, C:
label := (label="") ? "no_name" : StrReplace(label,A_Space,"_")
FormatTime, D_T, %A_Now%, yyMMdd_HHmm
RunWait, %SnapShot% -G -R -L999999 c: %label%_full_%D_T%.sna
늦은 시간까지 ...
자료 고맙습니다.^^
제가 스크립트에 추가한 부분입니다.(지후빠님께 죄송..)
(폴더 이동했을때 --> 폴더 안에 생성된 RegDelete.ahk 실행하세요)
IF (RegKeyExist("HKCR","DesktopBackground\shell\SnapShotBR")=false)
RCLICKMN()
.
.
.
.
.
RCLICKMN()
{
msgbox, 4, 〔 우메뉴 下에 등록 〕, 〔 우메뉴 下에 등록 〕 할까요? `n`n 〔 기존메뉴가 있으면 덮어씁니다. 〕
IfMsgBox Yes
{
FileDelete, %A_ScriptDir%\RegDelete.ahk
FileAppend,
(
if (!A_IsAdmin)`nRunAsAdmin()`nRegDelete, HKCR,DesktopBackground\shell\SnapShotBR`nFileDelete, `%A_ScriptFullPath`%`nRunAsAdmin() {`nif (!A_IsCompiled) {`nRun, *RunAs "`%A_AhkPath`%" /ErrorStdOut "`%A_ScriptFullPath`%"`n} else {`nRun, *RunAs "`%A_ScriptFullPath`%"`n}`nExitApp`n}
), %A_ScriptDir%\RegDelete.ahk
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR, Icon, shell32.dll,296
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR, Position, Bottom
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR, SubCommands,
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR\shell\SnapShotBR 실행, Icon, %A_ScriptDir%\snapshotbr.dll,1
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR\shell\SnapShotBR 실행\command, , %A_AhkPath% "%A_ScriptFullPath%"
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR\shell\SnapShotBR 제거, Icon, shell32.dll,131
RegWrite, REG_SZ, HKCR,DesktopBackground\shell\SnapShotBR\shell\SnapShotBR 제거\command, , %A_AhkPath% "%A_ScriptDir%\RegDelete.ahk"
}
}
.
.
.
.
.
RegKeyExist(sRoot, sKey) {
RegExMatch(sKey, "(?<Key>(.+))\\(?<Subkey>(\w+))$", d)
Loop, %sRoot%, %dKey%, 2, 0
if (A_LoopRegName = dSubkey)
return, true
return, false
}