View Source ct_ssh (common_test v1.26.2)
SSH/SFTP client module.
SSH/SFTP client module.
This module uses application SSH
, which provides detailed information about,
for example, functions, types, and options.
Argument Server
in the SFTP functions is only to be used for SFTP sessions
that have been started on existing SSH connections (that is, when the original
connection type is ssh
). Whenever the connection type is sftp
, use the SSH
connection reference only.
The following options are valid for specifying an SSH/SFTP connection (that is, can be used as configuration elements):
[{ConnType, Addr},
{port, Port},
{user, UserName}
{password, Pwd}
{user_dir, String}
{public_key_alg, PubKeyAlg}
{connect_timeout, Timeout}
{key_cb, KeyCallbackMod}]
ConnType = ssh | sftp
.
For other types, see ssh
.
All time-out parameters in ct_ssh
functions are values in milliseconds.
Summary
Types
For target_name
, see module ct
.
Connection type used for connect
For ssh_channel_id
, see module ssh
.
The valid values are 0
("normal") and 1
("stderr"), see
RFC 4254, Section 5.2.
Functions
apread(SSH, Handle, Position, Length) -> Result
apread(SSH, Server, Handle, Position, Length) -> Result
apwrite(SSH, Handle, Position, Data) -> Result
apwrite(SSH, Server, Handle, Position, Data) -> Result
aread(SSH, Handle, Len) -> Result
aread(SSH, Server, Handle, Len) -> Result
awrite(SSH, Handle, Data) -> Result
awrite(SSH, Server, Handle, Data) -> Result
close(SSH, Handle) -> Result
close(SSH, Server, Handle) -> Result
connect(KeyOrName) -> {ok, Handle} | {error, Reason}
connect(KeyOrName, ConnType) -> {ok, Handle} | {error, Reason}
connect(KeyOrName, ConnType, ExtraOpts) -> {ok, Handle} | {error, Reason}
del_dir(SSH, Name) -> Result
del_dir(SSH, Server, Name) -> Result
delete(SSH, Name) -> Result
delete(SSH, Server, Name) -> Result
disconnect(SSH) -> ok | {error, Reason}
exec(SSH, Command) -> {ok, Data} | {error, Reason}
exec(SSH, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
exec(SSH, ChannelId, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
get_file_info(SSH, Handle) -> Result
get_file_info(SSH, Server, Handle) -> Result
list_dir(SSH, Path) -> Result
list_dir(SSH, Server, Path) -> Result
make_dir(SSH, Name) -> Result
make_dir(SSH, Server, Name) -> Result
make_symlink(SSH, Name, Target) -> Result
make_symlink(SSH, Server, Name, Target) -> Result
open(SSH, File, Mode) -> Result
open(SSH, Server, File, Mode) -> Result
opendir(SSH, Path) -> Result
opendir(SSH, Server, Path) -> Result
position(SSH, Handle, Location) -> Result
position(SSH, Server, Handle, Location) -> Result
pread(SSH, Handle, Position, Length) -> Result
pread(SSH, Server, Handle, Position, Length) -> Result
pwrite(SSH, Handle, Position, Data) -> Result
pwrite(SSH, Server, Handle, Position, Data) -> Result
read(SSH, Handle, Len) -> Result
read(SSH, Server, Handle, Len) -> Result
read_file(SSH, File) -> Result
read_file(SSH, Server, File) -> Result
read_file_info(SSH, Name) -> Result
read_file_info(SSH, Server, Name) -> Result
read_link(SSH, Name) -> Result
read_link(SSH, Server, Name) -> Result
read_link_info(SSH, Name) -> Result
read_link_info(SSH, Server, Name) -> Result
receive_response(SSH, ChannelId) -> {ok, Data} | {timeout, Data} | {error, Reason}
receive_response(SSH, ChannelId, End) -> {ok, Data} | {timeout, Data} | {error, Reason}
receive_response(SSH, ChannelId, End, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
rename(SSH, OldName, NewName) -> Result
rename(SSH, Server, OldName, NewName) -> Result
send(SSH, ChannelId, Data) -> ok | {error, Reason}
send(SSH, ChannelId, Data, Timeout) -> ok | {error, Reason}
send(SSH, ChannelId, Type, Data, Timeout) -> ok | {error, Reason}
send_and_receive(SSH, ChannelId, Data) -> {ok, Data} | {timeout, Data} | {error, Reason}
send_and_receive(SSH, ChannelId, Data, End) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
send_and_receive(SSH, ChannelId, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
send_and_receive(SSH, ChannelId, Type, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
session_close(SSH, ChannelId) -> ok | {error, Reason}
session_open(SSH) -> {ok, ChannelId} | {error, Reason}
session_open(SSH, Timeout) -> {ok, ChannelId} | {error, Reason}
sftp_connect(SSH) -> {ok, Server} | {error, Reason}
shell(SSH, ChannelId) -> ok | {error, Reason}
shell(SSH, ChannelId, Timeout) -> ok | {error, Reason}
subsystem(SSH, ChannelId, Subsystem) -> Status | {error, Reason}
subsystem(SSH, ChannelId, Subsystem, Timeout) -> Status | {error, Reason}
write(SSH, Handle, Data) -> Result
write(SSH, Server, Handle, Data) -> Result
write_file(SSH, File, Iolist) -> Result
write_file(SSH, Server, File, Iolist) -> Result
write_file_info(SSH, Name, Info) -> Result
write_file_info(SSH, Server, Name, Info) -> Result
Types
-type connection() :: handle() | ct:target_name().
For target_name
, see module ct
.
-type connection_type() :: host | ssh | sftp.
Connection type used for connect
-type handle() :: pid().
Handle for a specific SSH/SFTP connection, see module ct
.
-type ssh_channel_id() :: non_neg_integer().
For ssh_channel_id
, see module ssh
.
-type ssh_data_type_code() :: non_neg_integer().
The valid values are 0
("normal") and 1
("stderr"), see
RFC 4254, Section 5.2.
Functions
-spec apread(SSH, Handle, Position, Length) -> Result when SSH :: connection(), Handle :: term(), Position :: integer(), Length :: integer(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
apread(SSH, Handle, Position, Length) -> Result
For information and other types, see ssh_sftp
.
-spec apread(SSH, Server, Handle, Position, Length) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Position :: integer(), Length :: integer(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
apread(SSH, Server, Handle, Position, Length) -> Result
For information and other types, see ssh_sftp
.
-spec apwrite(SSH, Handle, Position, Data) -> Result when SSH :: connection(), Handle :: term(), Position :: integer(), Data :: binary(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
apwrite(SSH, Handle, Position, Data) -> Result
For information and other types, see ssh_sftp
.
-spec apwrite(SSH, Server, Handle, Position, Data) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Position :: integer(), Data :: binary(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
apwrite(SSH, Server, Handle, Position, Data) -> Result
For information and other types, see ssh_sftp
.
-spec aread(SSH, Handle, Len) -> Result when SSH :: connection(), Handle :: term(), Len :: integer(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
aread(SSH, Handle, Len) -> Result
For information and other types, see ssh_sftp
.
-spec aread(SSH, Server, Handle, Len) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Len :: integer(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
aread(SSH, Server, Handle, Len) -> Result
For information and other types, see ssh_sftp
.
-spec awrite(SSH, Handle, Data) -> Result when SSH :: connection(), Handle :: term(), Data :: binary(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
awrite(SSH, Handle, Data) -> Result
For information and other types, see ssh_sftp
.
-spec awrite(SSH, Server, Handle, Data) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Data :: binary(), Result :: {async, N} | {error, Reason}, N :: term(), Reason :: term().
awrite(SSH, Server, Handle, Data) -> Result
For information and other types, see ssh_sftp
.
-spec close(SSH, Handle) -> Result when SSH :: connection(), Handle :: term(), Result :: ok | {error, Reason}, Reason :: term().
close(SSH, Handle) -> Result
For information and other types, see ssh_sftp
.
-spec close(SSH, Server, Handle) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Result :: ok | {error, Reason}, Reason :: term().
close(SSH, Server, Handle) -> Result
For information and other types, see ssh_sftp
.
-spec connect(KeyOrName) -> {ok, Handle} | {error, Reason} when KeyOrName :: atom(), Handle :: handle(), Reason :: term().
connect(KeyOrName) -> {ok, Handle} | {error, Reason}
Equivalent to ct_ssh:connect(KeyOrName, host, [])
.
-spec connect(KeyOrName, ConnType) -> {ok, Handle} | {error, Reason} when KeyOrName :: atom(), ConnType :: connection_type(), Handle :: handle(), Reason :: term(); (KeyOrName, ExtraOpts) -> {ok, Handle} | {error, Reason} when KeyOrName :: atom(), ExtraOpts :: [ExtraOption], ExtraOption :: {ssh, Address} | {sftp, Address} | ssh:client_option() | ssh_sftp:sftp_option(), Address :: ssh:host(), Handle :: handle(), Reason :: term().
connect(KeyOrName, ConnType) -> {ok, Handle} | {error, Reason}
Equivalent to ct_ssh:connect(KeyOrName, ConnType, [])
.
-spec connect(KeyOrName, ConnType, ExtraOpts) -> {ok, Handle} | {error, Reason} when KeyOrName :: atom(), ConnType :: connection_type(), ExtraOpts :: [ExtraOption], ExtraOption :: {ssh, Address} | {sftp, Address} | ssh:client_option() | ssh_sftp:sftp_option(), Address :: ssh:host(), Handle :: handle(), Reason :: term().
connect(KeyOrName, ConnType, ExtraOpts) -> {ok, Handle} | {error, Reason}
Opens an SSH or SFTP connection using the information associated with
KeyOrName
.
If Name
(an alias name for Key
) is used to identify the connection, this
name can be used as connection reference for subsequent calls. Only one open
connection at a time associated with Name
is possible. If Key
is used, the
returned handle must be used for subsequent calls (multiple connections can be
opened using the configuration data specified by Key
).
For information on how to create a new Name
, see ct:require/2
.
For target_name
, see module ct
.
ConnType
always overrides the type specified in the address tuple in the
configuration data (and in ExtraOpts
). So it is possible to, for example, open
an SFTP connection directly using data originally specifying an SSH connection.
Value host
means that the connection type specified by the host option (either
in the configuration data or in ExtraOpts
) is used.
ExtraOpts
(optional) are extra SSH options to be added to the configuration
data for KeyOrName
. The extra options override any existing options with the
same key in the configuration data. For details on valid SSH options, see
application SSH
.
-spec del_dir(SSH, Name) -> Result when SSH :: connection(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
del_dir(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec del_dir(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
del_dir(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec delete(SSH, Name) -> Result when SSH :: connection(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
delete(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec delete(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
delete(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec disconnect(SSH) -> ok | {error, Reason} when SSH :: connection(), Reason :: term().
disconnect(SSH) -> ok | {error, Reason}
Closes an SSH/SFTP connection.
-spec exec(SSH, Command) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), Command :: string(), Data :: string(), Reason :: term().
exec(SSH, Command) -> {ok, Data} | {error, Reason}
Equivalent to ct_ssh:exec(SSH, Command, DefaultTimeout)
.
-spec exec(SSH, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), Command :: string(), Timeout :: timeout(), Data :: string(), Reason :: term(); (SSH, ChannelId, Command) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Command :: string(), Data :: string(), Reason :: term().
exec(SSH, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
Requests server to perform Command
. A session channel is opened automatically
for the request. Data
is received from the server as a result of the command.
-spec exec(SSH, ChannelId, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id() | undefined, Command :: string(), Timeout :: timeout(), Data :: string(), Reason :: term().
exec(SSH, ChannelId, Command, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
Requests server to perform Command
. A previously opened session channel is
used for the request. Data
is received from the server as a result of the
command.
-spec get_file_info(SSH, Handle) -> Result when SSH :: connection(), Handle :: term(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
get_file_info(SSH, Handle) -> Result
For information and other types, see ssh_sftp
.
-spec get_file_info(SSH, Server, Handle) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
get_file_info(SSH, Server, Handle) -> Result
For information and other types, see ssh_sftp
.
-spec list_dir(SSH, Path) -> Result when SSH :: connection(), Path :: file:filename(), Result :: {ok, FileNames} | {error, Reason}, FileNames :: [FileName], FileName :: file:filename(), Reason :: term().
list_dir(SSH, Path) -> Result
For information and other types, see ssh_sftp
.
-spec list_dir(SSH, Server, Path) -> Result when SSH :: connection(), Server :: pid(), Path :: file:filename(), Result :: {ok, FileNames} | {error, Reason}, FileNames :: [FileName], FileName :: file:filename(), Reason :: term().
list_dir(SSH, Server, Path) -> Result
For information and other types, see ssh_sftp
.
-spec make_dir(SSH, Name) -> Result when SSH :: connection(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
make_dir(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec make_dir(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
make_dir(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec make_symlink(SSH, Name, Target) -> Result when SSH :: connection(), Name :: file:filename(), Target :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
make_symlink(SSH, Name, Target) -> Result
For information and other types, see ssh_sftp
.
-spec make_symlink(SSH, Server, Name, Target) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Target :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
make_symlink(SSH, Server, Name, Target) -> Result
For information and other types, see ssh_sftp
.
-spec open(SSH, File, Mode) -> Result when SSH :: connection(), File :: file:filename(), Mode :: [read | write | append | binary | raw], Result :: {ok, Handle} | {error, Reason}, Handle :: term(), Reason :: term().
open(SSH, File, Mode) -> Result
For information and other types, see ssh_sftp
.
-spec open(SSH, Server, File, Mode) -> Result when SSH :: connection(), Server :: pid(), File :: file:filename(), Mode :: [read | write | append | binary | raw], Result :: {ok, Handle} | {error, Reason}, Handle :: term(), Reason :: term().
open(SSH, Server, File, Mode) -> Result
For information and other types, see ssh_sftp
.
-spec opendir(SSH, Path) -> Result when SSH :: connection(), Path :: file:filename(), Result :: {ok, Handle} | {error, Reason}, Handle :: term(), Reason :: term().
opendir(SSH, Path) -> Result
For information and other types, see ssh_sftp
.
-spec opendir(SSH, Server, Path) -> Result when SSH :: connection(), Server :: pid(), Path :: file:filename(), Result :: {ok, Handle} | {error, Reason}, Handle :: term(), Reason :: term().
opendir(SSH, Server, Path) -> Result
For information and other types, see ssh_sftp
.
-spec position(SSH, Handle, Location) -> Result when SSH :: connection(), Handle :: term(), Location :: Offset | {bof, Offset} | {cur, Offset} | {eof, Offset} | bof | cur | eof, Offset :: integer(), Result :: {ok, NewPosition} | {error, Reason}, NewPosition :: integer(), Reason :: term().
position(SSH, Handle, Location) -> Result
For information and other types, see ssh_sftp
.
-spec position(SSH, Server, Handle, Location) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Location :: Offset | {bof, Offset} | {cur, Offset} | {eof, Offset} | bof | cur | eof, Offset :: integer(), Result :: {ok, NewPosition} | {error, Reason}, NewPosition :: integer(), Reason :: term().
position(SSH, Server, Handle, Location) -> Result
For information and other types, see ssh_sftp
.
-spec pread(SSH, Handle, Position, Length) -> Result when SSH :: connection(), Handle :: term(), Position :: integer(), Length :: integer(), Result :: {ok, Data} | eof | {error, Reason}, Data :: string() | binary(), Reason :: term().
pread(SSH, Handle, Position, Length) -> Result
For information and other types, see ssh_sftp
.
-spec pread(SSH, Server, Handle, Position, Length) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Position :: integer(), Length :: integer(), Result :: {ok, Data} | eof | {error, Reason}, Data :: string() | binary(), Reason :: term().
pread(SSH, Server, Handle, Position, Length) -> Result
For information and other types, see ssh_sftp
.
-spec pwrite(SSH, Handle, Position, Data) -> Result when SSH :: connection(), Handle :: term(), Position :: integer(), Data :: iolist(), Result :: ok | {error, Reason}, Reason :: term().
pwrite(SSH, Handle, Position, Data) -> Result
For information and other types, see ssh_sftp
.
-spec pwrite(SSH, Server, Handle, Position, Data) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Position :: integer(), Data :: iolist(), Result :: ok | {error, Reason}, Reason :: term().
pwrite(SSH, Server, Handle, Position, Data) -> Result
For information and other types, see ssh_sftp
.
-spec read(SSH, Handle, Len) -> Result when SSH :: connection(), Handle :: term(), Len :: integer(), Result :: {ok, Data} | eof | {error, Reason}, Data :: string() | binary(), Reason :: term().
read(SSH, Handle, Len) -> Result
For information and other types, see ssh_sftp
.
-spec read(SSH, Server, Handle, Len) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Len :: integer(), Result :: {ok, Data} | eof | {error, Reason}, Data :: string() | binary(), Reason :: term().
read(SSH, Server, Handle, Len) -> Result
For information and other types, see ssh_sftp
.
-spec read_file(SSH, File) -> Result when SSH :: connection(), File :: file:filename(), Result :: {ok, Data} | {error, Reason}, Data :: binary(), Reason :: term().
read_file(SSH, File) -> Result
For information and other types, see ssh_sftp
.
-spec read_file(SSH, Server, File) -> Result when SSH :: connection(), Server :: pid(), File :: file:filename(), Result :: {ok, Data} | {error, Reason}, Data :: binary(), Reason :: term().
read_file(SSH, Server, File) -> Result
For information and other types, see ssh_sftp
.
-spec read_file_info(SSH, Name) -> Result when SSH :: connection(), Name :: file:filename(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
read_file_info(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec read_file_info(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
read_file_info(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec read_link(SSH, Name) -> Result when SSH :: connection(), Name :: file:filename(), Result :: {ok, Target} | {error, Reason}, Target :: file:filename(), Reason :: term().
read_link(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec read_link(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: {ok, Target} | {error, Reason}, Target :: file:filename(), Reason :: term().
read_link(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec read_link_info(SSH, Name) -> Result when SSH :: connection(), Name :: string(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
read_link_info(SSH, Name) -> Result
For information and other types, see ssh_sftp
.
-spec read_link_info(SSH, Server, Name) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Result :: {ok, FileInfo} | {error, Reason}, FileInfo :: file:file_info(), Reason :: term().
read_link_info(SSH, Server, Name) -> Result
For information and other types, see ssh_sftp
.
-spec receive_response(SSH, ChannelId) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: string(), Reason :: term().
receive_response(SSH, ChannelId) -> {ok, Data} | {timeout, Data} | {error, Reason}
Equivalent to
ct_ssh:receive_response(SSH, ChannelId, close)
.
-spec receive_response(SSH, ChannelId, End) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), End :: fun((string()) -> boolean()), Data :: string(), Reason :: term(); (SSH, ChannelId, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Timeout :: timeout(), Data :: string(), Reason :: term().
receive_response(SSH, ChannelId, End) -> {ok, Data} | {timeout, Data} | {error, Reason}
Equivalent to
ct_ssh:receive_response(SSH, ChannelId, End, DefaultTimeout)
.
-spec receive_response(SSH, ChannelId, End, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), End :: close | timeout | fun((string()) -> boolean()), Timeout :: timeout(), Data :: string(), Reason :: term().
receive_response(SSH, ChannelId, End, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason}
Receives expected data from server on the specified session channel.
If End == close
, data is returned to the caller when the channel is closed by
the server. If a time-out occurs before this happens, the function returns
{timeout,Data}
(where Data
is the data received so far).
If End == timeout
, a time-out is expected and {ok,Data}
is returned both in
the case of a time-out and when the channel is closed.
If End
is a fun, this fun is called with one argument, the data value in a
received ssh_cm
message (see ssh_connection
. The fun is to return either
true
to end the receiving operation (and have the so far collected data
returned) or false
to wait for more data from the server. Even if a fun is
supplied, the function returns immediately if the server closes the channel).
-spec rename(SSH, OldName, NewName) -> Result when SSH :: connection(), OldName :: file:filename(), NewName :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
rename(SSH, OldName, NewName) -> Result
For information and other types, see ssh_sftp
.
-spec rename(SSH, Server, OldName, NewName) -> Result when SSH :: connection(), Server :: pid(), OldName :: file:filename(), NewName :: file:filename(), Result :: ok | {error, Reason}, Reason :: term().
rename(SSH, Server, OldName, NewName) -> Result
For information and other types, see ssh_sftp
.
-spec send(SSH, ChannelId, Data) -> ok | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), Reason :: term().
send(SSH, ChannelId, Data) -> ok | {error, Reason}
Equivalent to
ct_ssh:send(SSH, ChannelId, 0, Data, DefaultTimeout)
.
-spec send(SSH, ChannelId, Data, Timeout) -> ok | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), Timeout :: timeout(), Reason :: term(); (SSH, ChannelId, Type, Data) -> ok | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), Reason :: term().
send(SSH, ChannelId, Data, Timeout) -> ok | {error, Reason}
Equivalent to ct_ssh:send(SSH, ChannelId, 0, Data, Timeout)
.
-spec send(SSH, ChannelId, Type, Data, Timeout) -> ok | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), Timeout :: timeout(), Reason :: term().
send(SSH, ChannelId, Type, Data, Timeout) -> ok | {error, Reason}
Sends data to server on specified session channel.
-spec send_and_receive(SSH, ChannelId, Data) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), ReceivedData :: string(), Reason :: term().
send_and_receive(SSH, ChannelId, Data) -> {ok, Data} | {timeout, Data} | {error, Reason}
Equivalent to
ct_ssh:send_and_receive(SSH, ChannelId, Data, close)
.
-spec send_and_receive(SSH, ChannelId, Data, End) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), End :: close | timeout | fun((string()) -> boolean()), ReceivedData :: string(), Reason :: term(); (SSH, ChannelId, Data, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), Timeout :: timeout(), ReceivedData :: string(), Reason :: term(); (SSH, ChannelId, Type, Data) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), ReceivedData :: string(), Reason :: term().
send_and_receive(SSH, ChannelId, Data, End) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
Equivalent to
ct_ssh;send_and_receive(SSH, ChannelId, 0, Data, End, DefaultTimeout)
.
-spec send_and_receive(SSH, ChannelId, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, Data} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Data :: iodata(), End :: close | timeout | fun((string()) -> boolean()), Timeout :: timeout(), ReceivedData :: string(), Reason :: term(); (SSH, ChannelId, Type, Data, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), Timeout :: timeout(), ReceivedData :: string(), Reason :: term(); (SSH, ChannelId, Type, Data, End) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), End :: close | timeout | fun((string()) -> boolean()), ReceivedData :: string(), Reason :: term().
send_and_receive(SSH, ChannelId, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
Equivalent to
ct_ssh:send_and_receive(SSH, ChannelId, 0, Data, End, Timeout)
.
-spec send_and_receive(SSH, ChannelId, Type, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Type :: ssh_data_type_code(), Data :: iodata(), End :: close | timeout | fun((string()) -> boolean()), Timeout :: timeout(), ReceivedData :: string(), Reason :: term().
send_and_receive(SSH, ChannelId, Type, Data, End, Timeout) -> {ok, ReceivedData} | {timeout, ReceivedData} | {error, Reason}
Sends data to server on specified session channel and waits to receive the server response.
For details on argument End
, see
ct_ssh:receive_response/4
.
-spec session_close(SSH, ChannelId) -> ok | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Reason :: term().
session_close(SSH, ChannelId) -> ok | {error, Reason}
Closes an SSH session channel.
-spec session_open(SSH) -> {ok, ChannelId} | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Reason :: term().
session_open(SSH) -> {ok, ChannelId} | {error, Reason}
Equivalent to ct_ssh:session_open(SSH, DefaultTimeout)
.
-spec session_open(SSH, Timeout) -> {ok, ChannelId} | {error, Reason} when SSH :: connection(), Timeout :: timeout(), ChannelId :: ssh_channel_id(), Reason :: term().
session_open(SSH, Timeout) -> {ok, ChannelId} | {error, Reason}
Opens a channel for an SSH session.
-spec sftp_connect(SSH) -> {ok, Server} | {error, Reason} when SSH :: connection(), Server :: pid(), Reason :: term().
sftp_connect(SSH) -> {ok, Server} | {error, Reason}
Starts an SFTP session on an already existing SSH connection. Server
identifies the new session and must be specified whenever SFTP requests are to
be sent.
-spec shell(SSH, ChannelId) -> Result when SSH :: connection(), ChannelId :: ssh:ssh_channel_id(), Result :: ok | {error, term()}.
shell(SSH, ChannelId) -> ok | {error, Reason}
Equivalent to ct_ssh:shell(SSH, ChannelId, DefaultTimeout)
.
-spec shell(SSH, ChannelId, Timeout) -> Result when SSH :: connection(), ChannelId :: ssh:ssh_channel_id(), Timeout :: timeout(), Result :: ok | {error, term()}.
shell(SSH, ChannelId, Timeout) -> ok | {error, Reason}
Requests that the user default shell (typically defined in /etc/passwd
in Unix
systems) is executed at the server end.
-spec subsystem(SSH, ChannelId, Subsystem) -> Status | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Subsystem :: string(), Status :: success | failure, Reason :: term().
subsystem(SSH, ChannelId, Subsystem) -> Status | {error, Reason}
Equivalent to
ct_ssh:subsystem(SSH, ChannelId, Subsystem, DefaultTimeout)
.
-spec subsystem(SSH, ChannelId, Subsystem, Timeout) -> Status | {error, Reason} when SSH :: connection(), ChannelId :: ssh_channel_id(), Subsystem :: string(), Timeout :: timeout(), Status :: success | failure, Reason :: term().
subsystem(SSH, ChannelId, Subsystem, Timeout) -> Status | {error, Reason}
Sends a request to execute a predefined subsystem.
-spec write(SSH, Handle, Data) -> Result when SSH :: connection(), Handle :: term(), Data :: iodata(), Result :: ok | {error, Reason}, Reason :: term().
write(SSH, Handle, Data) -> Result
For information and other types, see ssh_sftp
.
-spec write(SSH, Server, Handle, Data) -> Result when SSH :: connection(), Server :: pid(), Handle :: term(), Data :: iodata(), Result :: ok | {error, Reason}, Reason :: term().
write(SSH, Server, Handle, Data) -> Result
For information and other types, see ssh_sftp
.
-spec write_file(SSH, File, Iolist) -> Result when SSH :: connection(), File :: file:filename(), Iolist :: iodata(), Result :: ok | {error, Reason}, Reason :: term().
write_file(SSH, File, Iolist) -> Result
For information and other types, see ssh_sftp
.
-spec write_file(SSH, Server, File, Iolist) -> Result when SSH :: connection(), Server :: pid(), File :: file:filename(), Iolist :: iodata(), Result :: ok | {error, Reason}, Reason :: term().
write_file(SSH, Server, File, Iolist) -> Result
For information and other types, see ssh_sftp
.
-spec write_file_info(SSH, Name, Info) -> Result when SSH :: connection(), Name :: file:filename(), Info :: file:file_info(), Result :: ok | {error, Reason}, Reason :: term().
write_file_info(SSH, Name, Info) -> Result
For information and other types, see ssh_sftp
.
-spec write_file_info(SSH, Server, Name, Info) -> Result when SSH :: connection(), Server :: pid(), Name :: file:filename(), Info :: file:file_info(), Result :: ok | {error, Reason}, Reason :: term().
write_file_info(SSH, Server, Name, Info) -> Result
For information and other types, see ssh_sftp
.