Sat, 08 Mar 2036 13:51:35 GMT ETag: "bef4201bf1fdd1053ffb870ee0fc142ced8c03ae" #!/usr/bin/env python2 # This script was developed by Vijaykumar Koppad (vkoppad@redhat.com) # The latest version of this script can found at # http://github.com/vijaykumar-koppad/crefi from __future__ import with_statement import os import re import sys import time import errno import xattr import string import random import logging import tarfile import argparse datsiz = 0 timr = 0 def setLogger(filename): global logger logger = logging.getLogger(filename) logger.setLevel(logging.DEBUG) return def setupLogger(filename): logger = logging.getLogger(filename) logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(message)s') ch = logging.StreamHandler() ch.setLevel(logging.INFO) ch.setFormatter(formatter) logger.addHandler(ch) return logger def os_rd(src, size): global datsiz fd = os.open(src, os.O_RDONLY) data = os.read(fd, size) os.close(fd) datsiz = datsiz + size return data def os_wr(dest, data): global timr st = time.time() fd = os.open(dest, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0644) os.write(fd, data) os.close(fd) ed = time.time() timr = timr+(ed-st) return def create_sparse_file(fil, size, mins, maxs, rand): if rand: size = random.randint(mins, maxs) else: size = size data = os_rd("/dev/zero", size) os_wr(fil, data) return def create_binary_file(fil, size, mins, maxs, rand): if rand: size = random.randint(mins, maxs) else: size = size data = os_rd("/dev/urandom", size) os_wr(fil, data) return def create_txt_file(fil, size, mins, maxs, rand): if rand: size = random.randint(mins, maxs) if size < 500*1024: data = os_rd("/etc/services", size) os_wr(fil, data) else: data = os_rd("/etc/services", 512*1024) file_size = 0 fd = os.open(fil, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0644) while file_size < size: os.write(fd, data) file_size += 500*1024 os.close(fd) return def create_tar_file(fil, size, mins, maxs, rand): if rand: size = random.randint(mins, maxs) else: size = size data = os_rd("/dev/urandom", size) os_wr(fil, data) tar = tarfile.open(fil+".tar.gz", "w:gz") tar.add(fil) tar.close() os.unlink(fil) return def get_filename(flen): size = flen char = string.uppercase+string.digits st = ''.join(random.choice(char) for i in range(size)) ti = str((hex(int(str(time.time()).split('.')[0])))[2:]) return ti+"%%"+st def text_files(files, file_count, inter, size, mins, maxs, rand, flen, randname, dir_path): global datsiz, timr for k in range(files): if not file_count % inter: logger.info("Total files created -- "+str(file_count)) if not randname: fil = dir_path+"/"+"file"+str(k) else: fil = dir_path+"/"+get_filename(flen) create_txt_file(fil, size, mins, maxs, rand) file_count += 1 return file_count def sparse_files(files, file_count, inter, size, mins, maxs, rand, flen, randname, dir_path): for k in range(files): if not file_count % inter: logger.info("Total files created -- "+str(file_count)) if not randname: fil = dir_path+"/"+"file"+str(k) else: fil = dir_path+"/"+get_filename(flen) create_sparse_file(fil, size, mins, maxs, rand) file_count += 1 return file_count def binary_files(files, file_count, inter, s