From d64e4353d51bf9da2a5399a385d15a4e9d340b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= <lukas.krupcik@vsb.cz> Date: Tue, 20 Sep 2016 07:14:33 +0200 Subject: [PATCH] add ttyrec to login, transfer and modules --- .../accessing-the-cluster.md | 4 + docs.it4i/salomon/environment-and-modules.md | 2 + docs.it4i/src/login.screen | 14 ++++ docs.it4i/src/modules.screen | 33 +++++++++ docs.it4i/src/modules.ttyrec | Bin 0 -> 12301 bytes docs.it4i/src/transfer.screen | 70 ++++++++++++++++++ docs.it4i/src/transfer.ttyrec | Bin 0 -> 30767 bytes 7 files changed, 123 insertions(+) create mode 100644 docs.it4i/src/login.screen create mode 100644 docs.it4i/src/modules.screen create mode 100644 docs.it4i/src/modules.ttyrec create mode 100644 docs.it4i/src/transfer.screen create mode 100644 docs.it4i/src/transfer.ttyrec diff --git a/docs.it4i/salomon/accessing-the-cluster/accessing-the-cluster.md b/docs.it4i/salomon/accessing-the-cluster/accessing-the-cluster.md index 9b1d60d7a..2ed906c72 100644 --- a/docs.it4i/salomon/accessing-the-cluster/accessing-the-cluster.md +++ b/docs.it4i/salomon/accessing-the-cluster/accessing-the-cluster.md @@ -58,6 +58,7 @@ Last login: Tue Jul 9 15:57:38 2013 from your-host.example.com [username@login2.salomon ~]$ ``` +Example to login on Salomon <tty-player controls src=/src/login.ttyrec></tty-player> !!! Note "Note" @@ -107,6 +108,9 @@ local $ sshfs -o IdentityFile=/path/to/id_rsa username@salomon.it4i.cz:. mountpo Using sshfs, the users Salomon home directory will be mounted on your local computer, just like an external disk. +Example to transfer data +<tty-player controls src=/src/transfer.ttyrec></tty-player> + Learn more on ssh, scp and sshfs by reading the manpages ```bash diff --git a/docs.it4i/salomon/environment-and-modules.md b/docs.it4i/salomon/environment-and-modules.md index 854c2e20e..018913c57 100644 --- a/docs.it4i/salomon/environment-and-modules.md +++ b/docs.it4i/salomon/environment-and-modules.md @@ -23,6 +23,8 @@ then module list # Display loaded modules fi ``` +Example display informations to standard output +<tty-player controls src=/src/modules.ttyrec></tty-player> !!! Note "Note" Do not run commands outputing to standard output (echo, module list, etc) in .bashrc for non-interactive SSH sessions. It breaks fundamental functionality (scp, PBS) of your account! Take care for SSH session interactivity for such commands as stated in the previous example. diff --git a/docs.it4i/src/login.screen b/docs.it4i/src/login.screen new file mode 100644 index 000000000..3bc948dee --- /dev/null +++ b/docs.it4i/src/login.screen @@ -0,0 +1,14 @@ +# login to Salomon cluster from local linux machine + +ssh -i /home/local/.ssh/id_rsa dd-16-12-13@salomon.it4i.cz + +# successfull login to cluster + +# run htop command + +htop + +# logout from cluster + +logout + diff --git a/docs.it4i/src/modules.screen b/docs.it4i/src/modules.screen new file mode 100644 index 000000000..eb7bbefae --- /dev/null +++ b/docs.it4i/src/modules.screen @@ -0,0 +1,33 @@ +ssh -i /home/local/.ssh/id_rsa dd-16-12-13@salomon.it4i.cz + +# working with modules + +# get the current version of Python +$ python --version + +# run Python +python + +# right now is version 2.6.6 + +# search all available Python's modules +module avail |& grep Python/ + +# for example let's choose a new module Python 3.5.1 +$ module load Python/3.5.1-intel-2016.01 + +# and now get the current version of Python +$ python --version + +# run Python +python + +# that's correct, version 3.5.1 + +# now turn back to old version you have to unload module +$ module unload Python/3.5.1-intel-2016.01 + +$ python -- version + +# Python version 2.6.6 is ready to use now + diff --git a/docs.it4i/src/modules.ttyrec b/docs.it4i/src/modules.ttyrec new file mode 100644 index 0000000000000000000000000000000000000000..544afa6c4a89d8c834dd83b97a980e030c2bf684 GIT binary patch literal 12301 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 literal 0 HcmV?d00001 diff --git a/docs.it4i/src/transfer.screen b/docs.it4i/src/transfer.screen new file mode 100644 index 000000000..b0962a229 --- /dev/null +++ b/docs.it4i/src/transfer.screen @@ -0,0 +1,70 @@ +# file transfer from local machine to the remote cluster +# toto i v CZ + +# create local directory with files +$ mkdir folder +$ cd folder + +# using scp command to transfer a file +$ touch test_file.scp +$ scp test_file.scp dd-16-12-13@salomon.it4i.cz:/home/training/dd-16-12-13/test_file.scp + +# using scp command to transfer a directory +$ mkdir local_dir +$ touch local_dir/file +$ scp -r local_dir dd-16-12-13@salomon.it4i.cz:/home/training/dd-16-12-13/local_dir + +# using sftp command +$ touch test_file.sftp +$ sftp -o IdentityFile=/home/local/.ssh/id_rsa dd-16-12-13@salomon.it4i.cz +# ukazat i interaktivni rezim +# commands: https://www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server +# list of all commands - help or ? +sftp> help + +# display remote working directory on Salomon +sftp> pwd +# display remote directory listing on Salomon +sftp> ls -la +# display statistics for remote directory +sftp> df -h + +# display local working directory on linux machine +sftp> lpwd +# display local directory listing on linux machine +sftp> lls -la + +# now we can upload a file from linux machine to Salomon +sftp> put test_file.sftp + +# and then check if successfull uploaded +sftp> ls -l + +# of course we can download a file from remote machine +sftp> get tutorial.tgz + +# and check in local directory +sftp> lls -l + +# delete local file from sftp +sftp>!rm tutorial.tgz + +# quit sftp +sftp> exit + + +##################### +# using sshfs command +# zatim nedelat +$ touch test_file.sshfs +## zjistit mountpoint! +$ sshfs -o IdentityFile=/home/local/.ssh/id_rsa dd-16-12-13@salomon.it4i.cz:. /home/training/dd-16-12-13 +##################### + +# login to the Salomon cluster and check all transfered files +ssh -i /home/local/.ssh/id_rsa dd-16-12-13@salomon.it4i.cz + +$ls -l + +# yes, all files are stored to home directory on the cluster + diff --git a/docs.it4i/src/transfer.ttyrec b/docs.it4i/src/transfer.ttyrec new file mode 100644 index 0000000000000000000000000000000000000000..5c926a7b55d3e66c57f26fa5bb96fd970f1287c5 GIT binary patch literal 30767 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�+TipMFe9N>EIXN5YmB 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 literal 0 HcmV?d00001 -- GitLab