.\" Copyright 2007-2011 Lars Wirzenius .\" .\" This program is free software: you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation, either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . .\" .TH GENBACKUPDATA 1 .SH NAME genbackupdata \- generate backup test data .SH SYNOPSIS .nh .B genbackupdata .RB [ \-\-chunk\-size\fR=\fISIZE ] .RB [ \-\-config\fR=\fIFILE ] .RB [ \-c\fR=\fISIZE ] .RB [ \-\-create\fR=\fISIZE ] .RB [ \-\-depth\fR=\fIDEPTH ] .RB [ \-\-dump\-config ] .RB [ \-\-dump\-memory\-profile\fR=\fIMETHOD ] .RB [ \-\-dump\-setting\-names ] .RB [ \-\-file\-size\fR=\fISIZE ] .RB [ \-\-generate\-manpage\fR=\fITEMPLATE ] .RB [ \-h ] .RB [ \-\-help ] .RB [ \-\-help\-all ] .RB [ \-\-list\-config\-files ] .RB [ \-\-log\fR=\fIFILE ] .RB [ \-\-log\-keep\fR=\fIN ] .RB [ \-\-log\-level\fR=\fILEVEL ] .RB [ \-\-log\-max\fR=\fISIZE ] .RB [ \-\-log\-mode\fR=\fIMODE ] .RB [ \-\-max\-files\fR=\fIMAX\-FILES ] .RB [ \-\-memory\-dump\-interval\fR=\fISECONDS ] .RB [ \-\-no\-default\-configs ] .RB [ \-\-no\-quiet ] .RB [ \-\-output\fR=\fIFILE ] .RB [ \-\-quiet ] .RB [ \-\-seed\fR=\fISEED ] .RB [ \-\-version ] .RI [ FILE ]... "" .hy .SH DESCRIPTION .B genbackupdata generates test data sets for performance testing of backup software. It creates a directory tree filled with files of different sizes. The total size and the distribution of sizes between small and big are configurable. The program can also modify an existing directory tree by creating new files, and deleting, renaming, or modifying existing files. This can be used to generate test data for successive generations of backups. .PP The program is deterministic: with a given set of parameters (and a given pre-existing directory tree), it always creates the same output. This way, it is possible to reproduce backup tests exactly, without having to distribute the potentially very large test sets. .PP The data set consists of plain files and directories. Files are either small text files or big binary files. Text files contain the "lorem ipsum" stanza, binary files contain randomly generated byte streams. The percentage of file data that is small text or big binary files can be set, as can the sizes of the respective file types. .PP Files and directories are named "fileXXXX" or "dirXXXX", where "XXXX" is a successive integer, separate successions for files and directories. There is an upper limit to how many files a directory may contain. After the file limit is reached, a new sub-directory is created. The first set of files go into the root directory of the test set. .PP You have to give one of the options .BR \-\-create , .BR \-\-delete , .BR \-\-rename , or .BR \-\-modify for the program to do anything. You can, however, give more than one of them, if .I DIR already exists. (Giving the same option more than once means that only the last instance is counted.) .RI ( DIR ) is created if it doesn't exist already. .SH OPTIONS .TP .BR \-\-chunk\-size =\fISIZE generate data in chunks of this size .TP .BR \-c ", " \-\-create =\fISIZE how much data to create (default: 0) .TP .BR \-\-depth =\fIDEPTH depth of directory tree .TP .BR \-\-file\-size =\fISIZE size of one file .TP .BR \-\-generate\-manpage =\fITEMPLATE SUPPRESSHELP .TP .BR \-h ", " \-\-help show this help message and exit .TP .BR \-\-max\-files =\fIMAX-FILES max files/dirs per dir .TP .BR \-\-no\-quiet .TP .BR \-\-output =\fIFILE write output to FILE, instead of standard output .TP .BR \-\-quiet do not report progress .TP .BR \-\-seed =\fISEED seed for random number generator .TP .BR \-\-version show program's version number and exit .SS "Configuration files and settings" .TP .BR \-\-config =\fIFILE add FILE to config files .TP .BR \-\-dump\-config write out the entire current configuration .TP .BR \-\-dump\-setting\-names SUPPRESSHELP .TP .BR \-\-help\-all show all options .TP .BR \-\-list\-config\-files SUPPRESSHELP .TP .BR \-\-no\-default\-configs clear list of configuration files to read .SS "Logging" .TP .BR \-\-log =\fIFILE write log entries to FILE (default is to not write log files at all); use "syslog" to log to system log, or "none" to disable logging .TP .BR \-\-log\-keep =\fIN keep last N logs (10) .TP .BR \-\-log\-level =\fILEVEL log at LEVEL, one of debug, info, warning, error, critical, fatal (default: debug) .TP .BR \-\-log\-max =\fISIZE rotate logs larger than SIZE, zero for never (default: 0) .TP .BR \-\-log\-mode =\fIMODE set permissions of new log files to MODE (octal; default 0600) .SS "Peformance" .TP .BR \-\-dump\-memory\-profile =\fIMETHOD make memory profiling dumps using METHOD, which is one of: none, simple, or meliae (default: simple) .TP .BR \-\-memory\-dump\-interval =\fISECONDS make memory profiling dumps at least SECONDS apart .SH EXAMPLES Create data for the first generation of a backup: .PP .RS genbackupdata \-\-create=10G testdir .RE .PP Modify an existing set of backup data to create a new generation: .PP .RS genbackupdata \-c 5% \-d 2% \-m 5% \-r 0.5% testdir .RE .PP The above command can be run for each new generation.