diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-12-20 14:19:39 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-12-20 14:19:39 +0000 |
commit | 80e19e829ec48eb0124076975f4d6ff433ee7acd (patch) | |
tree | 4bf6b3a41b57d8b2c040b3024de1155d901506c3 | |
parent | 27dc17b57188b370f63344e3791d770b3f010d54 (diff) | |
download | obnam-80e19e829ec48eb0124076975f4d6ff433ee7acd.tar.gz |
Add script for stress testing paramiko
-rwxr-xr-x | read-live-data-with-sftp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/read-live-data-with-sftp b/read-live-data-with-sftp new file mode 100755 index 00000000..7b2f0710 --- /dev/null +++ b/read-live-data-with-sftp @@ -0,0 +1,46 @@ +#!/usr/bin/python +# Copyright 2012 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 <http://www.gnu.org/licenses/>. + + +import stat +import sys +import ttystatus + +from obnamlib.plugins.sftp_plugin import SftpFS + + +ts = ttystatus.TerminalStatus(period=0.1) +ts['bytes'] = 0 +ts.format( + '%ElapsedTime() %Counter(pathname) %ByteSize(bytes) ' + '%ByteSpeed(bytes) %Pathname(pathname)') + +url = sys.argv[1] +fs = SftpFS(url) +fs.connect() + +for pathname, st in fs.scan_tree('.'): + ts['pathname'] = pathname + if stat.S_ISREG(st.st_mode): + f = fs.open(pathname, 'rb') + while True: + data = f.read(1024**2) + if not data: + break + ts['bytes'] += len(data) + f.close() + +ts.finish() |