sftp-cmds.sh revision 1.4
1# $OpenBSD: sftp-cmds.sh,v 1.4 2003/05/15 04:07:12 mouring Exp $ 2# Placed in the Public Domain. 3 4# XXX - TODO: 5# - chmod / chown / chgrp 6# - -p flag for get & put 7 8tid="sftp commands" 9 10DATA=/bin/ls 11COPY=${OBJ}/copy 12GLOBFILES=`(cd /bin;echo l*)` 13 14rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.* 15mkdir ${COPY}.dd 16 17verbose "$tid: lls" 18echo "lls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 19 || fail "lls failed" 20# XXX always successful 21 22verbose "$tid: ls" 23echo "ls ${OBJ}" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 24 || fail "ls failed" 25# XXX always successful 26 27verbose "$tid: shell" 28echo "!echo hi there" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 29 || fail "shell failed" 30# XXX always successful 31 32verbose "$tid: pwd" 33echo "pwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 34 || fail "pwd failed" 35# XXX always successful 36 37verbose "$tid: lpwd" 38echo "lpwd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 39 || fail "lpwd failed" 40# XXX always successful 41 42verbose "$tid: quit" 43echo "quit" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 44 || fail "quit failed" 45# XXX always successful 46 47verbose "$tid: help" 48echo "help" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 49 || fail "help failed" 50# XXX always successful 51 52rm -f ${COPY} 53verbose "$tid: get" 54echo "get $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 55 || fail "get failed" 56cmp $DATA ${COPY} || fail "corrupted copy after get" 57 58rm -f ${COPY}.dd/* 59verbose "$tid: get to directory" 60echo "get $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 61 || fail "get failed" 62cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get" 63 64rm -f ${COPY}.dd/* 65verbose "$tid: glob get to directory" 66echo "get /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 67 || fail "get failed" 68for x in $GLOBFILES; do 69 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" 70done 71 72rm -f ${COPY}.dd/* 73verbose "$tid: get to local dir" 74echo "lcd ${COPY}.dd\nget $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 75 || fail "get failed" 76cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after get" 77 78rm -f ${COPY}.dd/* 79verbose "$tid: glob get to local dir" 80echo "lcd ${COPY}.dd\nget /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 81 || fail "get failed" 82for x in $GLOBFILES; do 83 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after get" 84done 85 86rm -f ${COPY} 87verbose "$tid: put" 88echo "put $DATA $COPY" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 89 || fail "put failed" 90cmp $DATA ${COPY} || fail "corrupted copy after put" 91 92rm -f ${COPY}.dd/* 93verbose "$tid: put to directory" 94echo "put $DATA ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 95 || fail "put failed" 96cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put" 97 98rm -f ${COPY}.dd/* 99verbose "$tid: glob put to directory" 100echo "put /bin/l* ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 101 || fail "put failed" 102for x in $GLOBFILES; do 103 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" 104done 105 106rm -f ${COPY}.dd/* 107verbose "$tid: put to local dir" 108echo "cd ${COPY}.dd\nput $DATA" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 109 || fail "put failed" 110cmp $DATA ${COPY}.dd/ls || fail "corrupted copy after put" 111 112rm -f ${COPY}.dd/* 113verbose "$tid: glob put to local dir" 114echo "cd ${COPY}.dd\nput /bin/l*" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 115 || fail "put failed" 116for x in $GLOBFILES; do 117 cmp /bin/$x ${COPY}.dd/$x || fail "corrupted copy after put" 118done 119 120verbose "$tid: rename" 121echo "rename $COPY ${COPY}.1" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 122 || fail "rename failed" 123test -f ${COPY}.1 || fail "missing file after rename" 124cmp $DATA ${COPY}.1 >/dev/null 2>&1 || fail "corrupted copy after rename" 125 126verbose "$tid: rename directory" 127echo "rename ${COPY}.dd ${COPY}.dd2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 128 || fail "rename directory failed" 129test -d ${COPY}.dd && fail "oldname exists after rename directory" 130test -d ${COPY}.dd2 || fail "missing newname after rename directory" 131 132verbose "$tid: ln" 133echo "ln ${COPY}.1 ${COPY}.2" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 || fail "ln failed" 134test -L ${COPY}.2 || fail "missing file after ln" 135 136verbose "$tid: mkdir" 137echo "mkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 138 || fail "mkdir failed" 139test -d ${COPY}.dd || fail "missing directory after mkdir" 140 141# XXX do more here 142verbose "$tid: chdir" 143echo "chdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 144 || fail "chdir failed" 145 146verbose "$tid: rmdir" 147echo "rmdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 148 || fail "rmdir failed" 149test -d ${COPY}.1 && fail "present directory after rmdir" 150 151verbose "$tid: lmkdir" 152echo "lmkdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 153 || fail "lmkdir failed" 154test -d ${COPY}.dd || fail "missing directory after lmkdir" 155 156# XXX do more here 157verbose "$tid: lchdir" 158echo "lchdir ${COPY}.dd" | ${SFTP} -P ${SFTPSERVER} >/dev/null 2>&1 \ 159 || fail "lchdir failed" 160 161rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd ${COPY}.dd2 ${BATCH}.* 162 163 164