Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/opt/imh-python/bin/python2.7
- '''User migrate'''
- import os
- import argparse
- import string
- import time
- import requests
- import paramiko
- __version__ = '0.1'
- __author__ = 'Riley'
- def main():
- print __version__
- '''
- Entry function with arguments
- '''
- parser = argparse.ArgumentParser(description = 'A simple tool to manipulate' +
- 'cPanel users'
- )
- parser.add_argument('--user',
- help='Specify a user to manipulate',
- dest='user',
- required=True
- )
- parser.add_argument('--domain',
- help='Copy,duplicate,or move a users domain',
- dest='domain',
- )
- parser.add_argument('--db',
- help ='Dump a users databases to ' +
- 'the users home directory',
- dest='db',
- )
- parser.add_argument('--pass',
- '-p',
- help='Specify a passowrd for rsync,or other*',
- dest='password')
- parser.add_argument('--rsync',
- help='Rsync files to another ' +
- 'vps/dedicated. See --rhelp for details'
- )
- parser.add_argument('--dbdump',
- help='Dump any database'
- )
- parser.add_argument('--restoredb',
- help='Restore all databases from ' +
- ' /home/dump'
- )
- parser.add_argument('--remote',
- help='Check server status ' +
- 'of a remote server'
- )
- parser.add_argument('--test', help='Test a move with ' +
- 'Lynx browser'
- )
- raw = parser.parse_known_args()
- parser.args = raw[0]
- # rsync function Uses paramiko SFTP.
- def rsync(args):
- host = parser.host
- if not parser.host:
- parser.host = raw_input("Please enter a remote server: ")
- maninput = True
- user = parser.user
- if not parser.user:
- parser.user = raw_input("Please enter the user you will be migrating: ")
- maninput = True
- port = parser.port
- if not parser.port:
- parser.port = raw_input("Specify the SSH port: ")
- maninput = True
- password = parser.password
- if not parser.password:
- parser.password = raw_input("Enter the remote password")
- maninput = True
- # TODO: handle transferring of files better,make sure paramiko sftp allows me to set everything from parser.*
- username = parser.user
- password = parser.password
- port = parser.port
- cpasync = paramiko.Transport((host, port))
- cpasync.connect(username = username, password = password)
- csftp = paramiko.SFTPClient.from_cpasync(cpasync)
- local_dir = '/home/cpmove-rileybae.tar.gz'
- remote_dir = '/home/cpmove-rileybae.tar.gz'
- csftp.put(local_dir, remote_dir)
- # dumping a database. May or may not make it handle this differently in a later update.
- def dbdump():
- print "Enter any database name"
- database = raw_input()
- timestamp = time.strftime('%Y-%m-%d') # Makes a timestamp so you can keep better track of when you dumped it
- os.popen("mysqldump -e --opt -c %s" % (database,database+"_"+timestamp)) # Running mysqldump with popen(sue me)
- print "\n Database dumped to "+database+"_"+timestamp
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement