import time if __name__ == '__main__': if len(sys.argv) != 3: print 'Usage:' print sys.argv[0],' username workdir' exit(-1) user_name = sys.argv[1] work_dir = sys.argv[2] if user_name == 'root': print 'It is dangerous to run commands using root! make sure!' exit(-1) full_node_list = node_common.get_full_node_list() print 'will run commands on %d nodes...'%len(full_node_list) for node in full_node_list: try: print 'handling node:', node ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(node,port=22,username=user_name,password='******',timeout=5) #cmd = 'cd %s; svn update'%(work_dir) cmd = 'cd %s; ls pattern_reg'%(work_dir) print cmd stdin,stdout,stderr = ssh.exec_command(cmd) print 'execute remote command finished,stdout is:\n' print stdout.readlines()
print sys.argv[0], ' MERGEFET_INC cq02-sw-kvm06.cq02 8100 12 /home/karlxu/preprocess/n-gram karlxu nj02-sw-kvmserver01.nj02 iter_i_2gram 2' exit(-1) operation = sys.argv[1] cluster_server = sys.argv[2] listen_port = int(sys.argv[3]) num_procs = int(sys.argv[4]) work_dir = sys.argv[5] user_name = sys.argv[6] database_server = sys.argv[7] database_name = sys.argv[8] ngram = int(sys.argv[9]) print 'command line:' print '%s %s %d %d %s %s %s %s %d'%(operation,cluster_server,listen_port,num_procs,work_dir,user_name,database_server,database_name,ngram) orig_client_list = node_common.get_full_node_list() #orig_client_list = ['nj02-sw-kvmserver00.nj02'] client_list = _get_usable_client_list(orig_client_list,operation,user_name) print '\n' print 'executing remote command... num_clients=%d'%len(client_list) for client in client_list: try: print 'cluster_client = ', client ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(client,port=22,username=user_name,password='******',timeout=4) real_num_procs = num_procs #if node_common.NJ02_VMHOST in client: # real_num_procs = num_procs/2