RAR command line with real world example
Every week I make an ASR backup of my Windows 2003 R2 servers, some of them are physically located at another site.
Due to that fact I had to think of a secure way to get my data over the WAN to my office.
Just plain copying is not an option because we all know if one bit falls over my complete ASR backup is rubbish.
And I would have wasted precious bandwidth.
A solution I could come up with was to use plain old WinRar, I found out that there was a command line version as well.
But the help that comes with that version is kinda cryptic.
Below is my command line that I came up with.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
I will explain it in full detail:
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
a = add files to archive, that really speaks for itself I think.
we are going to add files to an archive.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
d:\asr-bu\done\asr_server.rar = this is the name of the archive we are going to create.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-ri1 = this gives the archive process a priority of 1 which is the lowest, this way archiving will not degrade the performance of the server to much.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-mt2 = Multithreaded: If you have a multithreaded cpu then with this command you give both threads work.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-ag[yyyy-mm-dd] = here you give the archive a name with [2007-11-22] attached to it.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-rv10 = This is for me the most important option: this switch create recovery volumes called REV files the number indicates how many REV will be made.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-v51200 = here we specify the maximum size of a rar archive (we are creating an archive that will span a number of archives. The number 51200 is chose because it will show as 50.000 KB nicely in explorer (1024x50)
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
-m5 = This is how you specify the compression level 5 is maximum compression 0 is just store no compression at all.
rar a d:\asr-bu\done\asr_server.rar -ri1 -mt2 -ag[yyyy-mm-dd] -rv10 -v51200 -m5 d:\asr-bu\*.bkf
d:\asr-bu\*.bkf = here we specify what to store in the Archive we create. My ASR backup is stored at this location, I use also a date in my naming of ASR's so I must use a wildcard here.
All of this results in the following set of rar files
asr_server[2007-11-22].part001.rar
asr_server[2007-11-22].part002.rar etc...
I hope this helps you.
-------------------------------------------------------------------------
RAR 3.70 Copyright (c) 1993-2007 Alexander Roshal 22 May 2007
Shareware version Type RAR -? for help
Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
<Commands>
a Add files to archive
c Add archive comment
cf Add files comment
ch Change archive parameters
cw Write archive comment to file
d Delete files from archive
e Extract files to current directory
f Freshen files in archive
i[par]=<str> Find string in archives
k Lock archive
l[t,b] List archive [technical, bare]
m[f] Move to archive [files only]
p Print file to stdout
r Repair archive
rc Reconstruct missing volumes
rn Rename archived files
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[name|-] Convert archive to or from SFX
t Test archive files
u Update files in archive
v[t,b] Verbosely list archive [technical,bare]
x Extract files with full path
<Switches>
- Stop switches scanning
ac Clear Archive attribute after compression or extraction
ad Append archive name to destination path
ag[format] Generate archive name using the current date
ao Add files with Archive attribute set
ap<path> Set path inside archive
as Synchronize archive contents
av Put authenticity verification (registered versions only)
av- Disable authenticity verification check
c- Disable comments show
cfg- Disable read configuration
cl Convert names to lower case
cu Convert names to upper case
df Delete files after archiving
dh Open shared files
ds Disable name sort for solid archive
e[+]<attr> Set file exclude and include attributes
ed Do not add empty directories
en Do not put 'end of archive' block
ep Exclude paths from names
ep1 Exclude base directory from names
ep2 Expand paths to full
ep3 Expand paths to full including the drive letter
f Freshen files
hp[password] Encrypt both file data and headers
id[c,d,p,q] Disable messages
ieml[addr] Send archive by email
ierr Send all messages to stderr
ilog[name] Log errors to file (registered versions only)
inul Disable all messages
ioff Turn PC off after completing an operation
isnd Enable sound
k Lock archive
kb Keep broken extracted files
m<0..5> Set compression level (0-store...3-default...5-maximal)
mc<par> Set advanced compression parameters
md<size> Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
ms[ext;ext] Specify file types to store
mt<threads> Set the number of threads
n<file> Include only specified file
n@ Read file names to include from stdin
n@<list> Include files in specified list file
o+ Overwrite existing files
o- Do not overwrite existing files
oc Set NTFS Compressed attribute
or Rename files automatically
os Save NTFS streams
ow Save or restore file owner and group
p[password] Set password
p- Do not query password
r Recurse subdirectories
r0 Recurse subdirectories for wildcard names only
ri<P>[:<S>] Set priority (0-default,1-min..15-max) and sleep time in ms
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[<N>,v[-],e] Create solid archive
s- Disable solid archiving
sc<chr>[obj] Specify the character set
sfx[name] Create SFX archive
si[name] Read data from standard input (stdin)
sl<size> Process files with size less than specified
sm<size> Process files with size more than specified
t Test files after archiving
ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
tk Keep original archive time
tl Set archive time to latest file
tn<time> Process files newer than <time>
to<time> Process files older than <time>
ts<m,c,a>[N] Save or restore file time (modification, creation, access)
u Update files
v Create volumes with size autodetection or list all volumes
v<size>[k,b] Create volumes with size=<size>*1000 [*1024, *1]
vd Erase disk contents before creating volume
ver[n] File version control
vn Use the old style volume naming scheme
vp Pause before each volume
w<path> Assign work directory
x<file> Exclude specified file
x@ Read file names to exclude from stdin
x@<list> Exclude files in specified list file
y Assume Yes on all queries
z[file] Read archive comment from file
Comments
This is extremely helpful since I can't use any GUI on my ubuntu server.
Thank you.
This one give "the system cannot execute specified program"
NOTE:
On Linux (at least in my scenario) the '-mt2' option does not work... I think the multithreading support is only available for Windows...
It helped me to do it in a flash.
Now: little detail: Since Win Vista, now windows is separating 2 folders called similar: program file and program file (x86) (because the 32&64 bit software). This second name will not be taken by command line because the space before (x86).
So I think it might be a temporary solution re-install Winrar as: c:\winrar to fix this thing.
However, I will do my gift here for everybody else: I will backup stuff and put pass on it (-pPassword, where -p is the command and Password is whatever is the password you want) AND add a comment (I suggest to use -zreadme.txt, where -z is the command and readme.txt is the file containing your comment).
Why the comment? I do forgot passwords!!! so, you put a comment that is the hint for the password!!! CLEVER IDEA, why? because when you open normally, even a password protected rar file, winrar (winzip won't do it) will SHOW YOU THE HINT ON THE RIGHT WINDOWS. Thank you...thank you.. i know ... i know...thanks my lovely crowd...
Any suggestion would be great.
I make batch file to make rar files so that i do not need to remember the command again and again.
ANY SUGGESTION IS APPRECIATED.
i need to add parameters in SFX options like "xxxx.exe /quiet /norestart"
how to do this
and how to add modes
Please let me know this.
Please help me to write a script in batch for the same