数据备份的一些注意事项。
数据一定要”离线备份“,也就是不能本机备份到本机,而要备份到独立于PC的移动存储设备上,而且移动存储设备要是机械硬盘,不能是U盘或者SSD(固态硬盘)。
因为U盘/SSD使用NAND闪存保存数据,这种存储器是有数据保质期的,过了保质期数据就会”挥发“,随着制程的提高,存储密度越来越高,保质期也越来越短,目前广泛使用的TLC闪存的保质期不到一年,理论上说,一年以后的SSD不一定能读出原始数据。
你可能会问,现在SSD的应用越来越广泛,大量PC已经内置了SSD,难道它们的数据都不能保存超过一年?非也,SSD厂商为了避免数据挥发,在固件里写了搬运程序,当判断出某块数据快到保质期,就将其拷贝到另一处,数据重新写入,保质期也就从头开始算了。
但很明显,SSD需要通电才能完成搬运,PC是长时间通电的设备,所以内置的SSD有时间搬运数据,而U盘/移动硬盘是长时间断电放置的,没有时间搬运数据。
由此可见,如果笔记本/台式机内置了SSD,长时间断电是有数据丢失的风险的,建议把数据拷贝出来,或者定期开机让SSD搬运数据。
最后说说数据备份设备的选择,高大上的选择当然是NAS,有好几个磁盘做冗余,但是价格不菲,如果对备份没有很高的要求,可以购买台式机机械硬盘+USB 3.0转SATA线以实现廉价的备份,注意一定要是 USB 3.0或更高版本且支持USAP,以获得尽可能高的拷贝速度。
::本批处理的目的是把PC硬盘里的数据自动同步(备份)到外置的机械硬盘。
::把fastcopy放入系统路径,或者本批处理的目录下。
::因为PC硬盘的”卷标“和”盘符“不是固定的对应关系(比如插入U盘之后),所以不能在2个固定的盘符之间对拷。
::为此,先获得指定卷标的盘符,然后把该盘符下的数据用fastcopy同步到外置指定卷标的硬盘。
::有容错机制,如果发现任何一个卷标找不到对应的盘符,会显示报错信息并退出。
::插入硬盘以后等待一会,让操作系统认出移动硬盘的盘符之后再备份。
::3个源盘的卷标:视频、照片、数据
::目标盘卷标:移动硬盘
@echo off
::=============获得卷标为“视频”的盘符==========
cls
set flag=0
set input=
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "tokens=4" %%j in ('vol %%i: 2^>nul') do if /i "%%j"=="视频" call :s2 %%i&set flag=1
)
if %flag% neq 1 echo 没有卷标为“视频”的盘符&pause
goto :eof
:s2
set sp1=%1
echo.
echo 卷标为“视频”的盘符是:%sp1%
echo.
::=============获得卷标为“照片”的盘符==========
set flag=0
set input=
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "tokens=4" %%j in ('vol %%i: 2^>nul') do if /i "%%j"=="照片" call :s4 %%i&set flag=1
)
if %flag% neq 1 echo 没有卷标为“照片”的盘符&pause
goto :eof
:s4
set ph=%1
echo.
echo 卷标为“照片”的盘符是:%ph%
echo.
::=============获得卷标为“数据”的盘符==========
set flag=0
set input=
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "tokens=4" %%j in ('vol %%i: 2^>nul') do if /i "%%j"=="数据" call :s5 %%i&set flag=1
)
if %flag% neq 1 echo 没有卷标为“数据”的盘符&pause
goto :eof
:s5
set xbf=%1
echo.
echo 卷标为“数据”的盘符是:%xbf%
echo.
::=============获得卷标为“移动硬盘”的盘符,这是备份用的移动硬盘==========
set flag=0
set input=
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "tokens=4" %%j in ('vol %%i: 2^>nul') do if /i "%%j"=="移动硬盘" call :s1 %%i&set flag=1
)
if %flag% neq 1 echo 没有卷标为“移动硬盘”的盘符&pause
goto :eof
:s1
set lxbf=%1
echo.
echo 卷标为“移动硬盘”的盘符是:%lxbf%
echo.
::=============将数据备份到移动硬盘==========
::变量:sp1,ph,xbf,lxbf
echo 正在将数据同步到移动硬盘 %lxbf%:(修改时间最新者,以及新创建的文件)
echo 同步: 视频 %sp1%:\ 到 移动硬盘 %lxbf%:
FastCopy.exe /cmd=sync /force_close %sp1%:\* /to=%lxbf%:\视频
echo 同步: 照片 %ph%:\ 到 移动硬盘 %lxbf%:
FastCopy.exe /cmd=sync /force_close %ph%:\* /to=%lxbf%:\照片
echo 同步: 数据 %xbf%:\ 到 移动硬盘 %lxbf%:
FastCopy.exe /cmd=sync /force_close %xbf%:\* /to=%lxbf%:\数据
echo.
echo.
echo 备份完毕,请检查是否有报错信息,按任意键退出。
echo.
pause
:eof