def staging():
answer = prompt('Are you sure you want to DELETE ALL DATA on "{0}" and replace it with test data? (type "I am sure" to continue):'.format(env.host_string))
if answer != 'I am sure':
abort('Aborted!')
run_fixtures('all')
python类prompt()的实例源码
07_05_run_mysql_command_remotely.py 文件源码
项目:011_python_network_programming_cookbook_demo
作者: jerry-0824
项目源码
文件源码
阅读 18
收藏 0
点赞 0
评论 0
def remote_server():
# Edit this list to include remote hosts
env.host = ['127.0.0.1']
env.user = prompt('Enter your system username: ')
env.password = getpass('Enter your system user password: ')
env.mysqlhost = 'localhost'
env.mysqluser = prompt('Enter your db username: ')
env.mysqlpassword = getpass('Enter your db user password: ')
env.db_name = ''
""" Wraps mysql show databases cmd """
q = "show databases"
run("echo '%s' | mysql -u%s" %(q, env.mysqluser, env.mysqlpassword))
07_05_run_mysql_command_remotely.py 文件源码
项目:011_python_network_programming_cookbook_demo
作者: jerry-0824
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def run_sql(db_name, query):
""" Generic function to run sql """
with cd('/tmp'):
run("echo '%s' | mysql -u%s -p%s -D%s" %(query, env.mysqluser, env.mysqlpassword, db_name))
def create_db():
""" Create a MySQL DB for App version """
if not env.db_name:
db_name = prompt("Enter the DB name:")
else:
db_name = env.db_name
run('echo "CREATE DATABASE %s default character set utf8 collate utf8 collate utf8_unicode_ci;"|mysql --batch --user=%s --password=%s --host=%s'\
% (db_name, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
def ls_db():
""" List a dbs with size in MB """
if not env.db_name:
db_name = prompt("Which DB to ls?")
else:
db_name = env.db_name
query = """SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
WHERE table_schema = \"%s\"
GROUP BY table_schema """ %db_name
run_sql(db_name,query)
def empty_db():
""" Empty all tables of a given DB """
db-name = prompt("Enter DB name to empty:")
cmd = """
(echo 'SET foreign_key_checks = 0;';
(mysqldump -u%s -p%s --add-drop-table --no-data %s |
grep ^DROP);
echo 'SET foreign_key_checks = 1;') | \
mysql -u%s -p%s -b %s
""" %(env.mysqluser, env.mysqlpassword, db_name, env.mysqluser, env.mysqlpassword, db_name)
run(cmd)
07_04_install_python_package_remotely.py 文件源码
项目:011_python_network_programming_cookbook_demo
作者: jerry-0824
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def remote_server():
env.hosts = ['127.0.0.1']
env.user = prompt('Enter user name: ')
env.password = getpass('Enter password: ')
07_06_transfer_file_over_ssh.py 文件源码
项目:011_python_network_programming_cookbook_demo
作者: jerry-0824
项目源码
文件源码
阅读 24
收藏 0
点赞 0
评论 0
def download_file():
print "Checking local disk space..."
local("df -h")
remote_path = prompt("Enter the remote file path:")
local_path = prompt("Enter the local file path:")
get(remote_path=remote_path, local_path=local_path)
local("ls %s" %local_path)
def create_role():
"""Create Remote Role."""
name_role = prompt("Unique name? ")
with cd(remote_app_dir):
sudo(
"source env-{{NAMEPROJECT}}/bin/activate && python {{NAMEPROJECT}}/manage.py create_role -n {}".format(name_role))
fabfile.py 文件源码
项目:Django-Web-Development-with-Python
作者: PacktPublishing
项目源码
文件源码
阅读 18
收藏 0
点赞 0
评论 0
def _update_production():
""" updates production environment """
if "y" != prompt(red('Are you sure you want to update ' + red('production', bold=True) + ' website (y/n)?'), default="n"):
return
run("") # password request
print
if env.full or "y" == prompt(red('Set maintenance screen (y/n)?'), default="y"):
print(green(" * Setting maintenance screen"))
run('cd ~/public_html/ '
'&& cp .htaccess_maintenance .htaccess')
print
if env.full or "y" == prompt(red('Stop cron jobs (y/n)?'), default="y"):
print(green(" * Stopping cron jobs"))
sudo('/etc/init.d/cron stop')
print
if env.full or "y" == prompt(red('Backup database (y/n)?'), default="y"):
print(green(" * creating a database dump..."))
run('cd ~/db_backups/ '
'&& ./backup_db.bsh')
print
if env.full or "y" == prompt(red('Update code (y/n)?'), default="y"):
print(green(" * updating code..."))
run('cd ~/project/myproject/ '
'&& git pull')
print
if env.full or "y" == prompt(red('Collect static files (y/n)?'), default="y"):
print(green(" * collecting static files..."))
run('cd ~/project/myproject '
'&& python manage.py collectstatic --noinput')
print
if env.full or "y" == prompt(red('Migrate database schema (y/n)?'), default="y"):
print(green(" * migrating database schema..."))
run('cd ~/project/myproject '
'&& python manage.py migrate --no-initial-data')
run('cd ~/project/myproject '
'&& python manage.py syncdb')
print
if env.full or "y" == prompt(red('Restart webserver (y/n)?'), default="y"):
print(green(" * Restarting Apache"))
sudo('/etc/init.d/apache2 graceful')
print
if env.full or "y" == prompt(red('Start cron jobs (y/n)?'), default="y"):
print(green(" * Starting cron jobs"))
sudo('/etc/init.d/cron start')
print
if env.full or "y" == prompt(red('Unset maintenance screen (y/n)?'), default="y"):
print(green(" * Unsetting maintenance screen"))
run('cd ~/public_html/ '
'&& cp .htaccess_live .htaccess')
print
def install_wordpress(self):
if self.args.force or prompt(red(' * Install Wordpress (y/n)?'), default='y') == 'y':
# create project web server config file if not exist
with cd('/etc/nginx/sites-available'):
if not exists(self.project):
sudo('touch {0}'.format(self.project))
# check the php version is php5 or php7
try:
sudo('php5-fpm -v')
# save wordpress config
put(StringIO(self.nginx_web_wordpress_config), self.project, use_sudo=True)
except:
sudo('php-fpm7.0 -v')
# save wordpress config
put(StringIO(self.nginx_php7_web_wordpress_config), self.project, use_sudo=True)
# go to web root
with cd(self.nginx_web_dir):
# download latest wordpress, extract and change mode
sudo('wget https://wordpress.org/latest.tar.gz')
sudo('tar -zxvf latest.tar.gz')
sudo('sudo chown -R www-data:www-data wordpress')
# rename wordpress project
sudo('mv wordpress {0}'.format(self.project))
# create uploads folder
sudo('mkdir {0}/wp-content/uploads'.format(self.project))
sudo('chown -R www-data:www-data {0}/wp-content/uploads'.format(self.project))
# go to nginx enabled config
with cd('/etc/nginx/sites-enabled'):
if exists(self.project):
sudo('rm {0}'.format(self.project))
# remove the default nginx config
if exists('default'):
sudo('rm default')
# move project web server config file from avaiable to enable folder
sudo('ln -s /etc/nginx/sites-available/{0} .'.format(self.project))
# restart server
try:
sudo('service php5-fpm restart')
except:
sudo('service php7.0-fpm restart')
sudo('service nginx restart')
print(green(' * Installed Wordpress project {0} in the system.'.format(self.project)))
print(green(' * Done'))
print()