#!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd # In[2]: import os import boto3 import botocore import paramiko # In[3]: mergedMatricesDir='/nrnb/users/btsui/Data/all_seq/rnaseq_merged/' inFnameS=pd.Series(os.listdir(mergedMatricesDir)) # In[4]: include_m1=(inFnameS.str.contains('gene_symbol')&(~inFnameS.str.contains('.gz'))) include_m2=inFnameS.isin(['merged_kallisto_run_info.pickle']) transferFnames=inFnameS[include_m1|include_m2] # In[5]: key = paramiko.RSAKey.from_private_key_file('/cellar/users/btsui/.ssh/jupyter_hub.pem') client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # # * [Launch the T3 micro instance on AWS with k8s.ebs_20g.efs_automount (ami-04052dc36ee4ac5c1)](https://us-west-2.console.aws.amazon.com/ec2/v2/home?region=us-west-2#Instances:sort=launchTime) # * Modify the instance_ip to the AWS for data uploading instance # In[6]: instance_ip='ec2-34-215-138-8.us-west-2.compute.amazonaws.com' mountEfs='sudo mount -t efs fs-e1636448:/ efs' #try: # Here 'ubuntu' is user name and 'instance_ip' is public IP of EC2 client.connect(hostname=instance_ip, username="ec2-user", pkey=key) # Execute a command(cmd) after connecting/ssh to an instance cmd='mkdir ~/efs' stdin, stdout, stderr = client.exec_command(cmd) cmd='sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-e1636448.efs.us-west-2.amazonaws.com:/ ~/efs' stdin, stdout, stderr = client.exec_command(cmd) # In[7]: print(stdout.read(),stderr.read()) # In[8]: remoteDir='~/efs/all_seq/rnaseq_merged/' # In[9]: cmd='mkdir '+remoteDir stdin, stdout, stderr = client.exec_command(cmd) print (stdout.read()) print (stderr.read()) # In[10]: addHostVerificationCmd="ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/jupyter_hub.pem ec2-user@{instance_ip} ls".format(instance_ip=instance_ip) os.system(addHostVerificationCmd) # In[11]: myRsyncDirFormat='rsync -Pvu -e "ssh -i $HOME/.ssh/jupyter_hub.pem" {localFDir} ec2-user@{instance_ip}:{remoteDir}' # In[ ]: for localFname in transferFnames.values: localFDir= (mergedMatricesDir+localFname) rsyncCmd=myRsyncDirFormat.format(localFDir=localFDir,instance_ip=instance_ip,remoteDir=remoteDir+'.') print (rsyncCmd) print (os.system(rsyncCmd)) # In[13]: #!rsync -Pvu -e "ssh -i $HOME/.ssh/jupyter_hub.pem" /nrnb/users/btsui/Data/all_seq/rnaseq_merged/Canis_familiaris.gene_symbol.tpm.index.txt ec2-user@ec2-52-13-69-172.us-west-2.compute.amazonaws.com:~/efs/all_seq/rnaseq_merged/. # In[21]: #!rsync -Pvu -e "ssh -i $HOME/.ssh/jupyter_hub.pem" /nrnb/users/btsui/Data/all_seq/rnaseq_merged/Canis_familiaris.gene_symbol.tpm.index.txt \ #ec2-user@ec2-52-24-55-248.us-west-2.compute.amazonaws.com:~/. # In[18]: #!ls $HOME/.ssh/ # In[105]: import seaborn # In[2]: #!cp ./upload_AWS.ipynb ./../../Update_SRA_meta_data/. # In[ ]: