Archives mensuelles : février 2011

memo varnish purge

varnishadm -S /etc/varnish/secret -T :6082 "url.purge .*"
varnishadm -S /etc/varnish/secret -T :6082 'purge req.http.host == "blog.hio.fr"'
varnishadm -S /etc/varnish/secret -T :6082 'purge req.url ~ .(xml|txt)'

pureftpd_adduser.sh

#!/bin/bash
# ftp
ftp_root="/home/ftp"
ftp_host="ftp.host.com"
ftp_port="21"
ftp_user=$1
ftp_passwd=`pwgen -y 12 1`
ftp_owner="www-data:www-data"
ftp_perm="555"
ftp_uid="33"
ftp_gid="33"
# mysql
mysql_user="PUREUSER"
mysql_db_name="DBNAME"
mysql_table="TABLE"
mysql_passwd="PASSWORD"
# lftp
lftp_bin="/usr/bin/lftp"
 
function usage {
    echo "Usage:"
    echo "$0 ftp_user"
}
 
if [[ $1 == "" ]]; then
    usage
    exit 1
fi
 
if [ ! -d "$ftp_root/$ftp_user" ]; then
    echo "create user home dir $ftp_root/$ftp_user"
    mkdir $ftp_root/$ftp_user
    chown $ftp_owner $ftp_root/$ftp_user
    chmod $ftp_perm $ftp_root/$ftp_user
    echo "create user $ftp_user"
    mysql -u"$mysql_user" -p"$mysql_passwd" <<EOF
INSERT INTO $mysql_db_name.$mysql_table (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles) VALUES ('$ftp_user', '1', MD5('$ftp_passwd'), '$ftp_uid', '$ftp_gid', '$ftp_root/$ftp_user', '0', '0', '', '*', '0', '0');
EOF
    echo "## FTP USER ##"
    echo "host: $ftp_host"
    echo "port: $ftp_port"
    echo "login: $ftp_user"
    echo "password: $ftp_passwd"
 
    echo "## TEST ACCOUNT ##"
    if [ -f "$lftp_bin" ]; then
	$lftp_bin -u $ftp_user,$ftp_passwd localhost -e "ls;quit"
    else
	echo "lftp ($lftp_bin) not found"
    fi
    echo "done."
else
    echo "user $ftp_user already exists"
fi

fix_db_host.sh

#!/bin/bash
www_dir="/home/www"
for i in `ls $www_dir`
do
    mkdir -p /tmp/$i/
    sed -e 's/old.database.com/new.database.com/g' $i/wp-config.php > /tmp/$i/wp-config.php
    mv /tmp/$i/wp-config.php $www_dir/$i/wp-config.php
    rmdir /tmp/$i/
done

migrate_wordpress.sh

#!/bin/bash
# SSH
ssh_host="source.host.tld"
ssh_user="hio"
ssh_port="22"
ssh_key="/home/hio/.ssh/id_rsa"
www_dir="/www/blogs/"
# WWW
vhost_template="/home/hio/blog.vhost"
blog=$1
vhost_server_name=$2
# REMOTE
remote_tmp_dir="/home/hio/tmp"
remote_mysql_root="root"
remote_mysql_password="password"
# LOCAL
local_tmp_dir="/tmp"
local_mysql_root="root"
local_mysql_password="password"
 
if [ ! -f "$blog/wp-config.php" ]; then
    echo 'COPY WORDPRESS FILES...'
    scp -r -P$ssh_port -i$ssh_key $ssh_user@$ssh_host:/$www_dir/$blog .
    db_host=`grep 'DB_HOST' $blog/wp-config.php|awk -F "'" '{print $4}'`
    db_name=`grep 'DB_NAME' $blog/wp-config.php|awk -F "'" '{print $4}'`
    db_user=`grep 'DB_USER' $blog/wp-config.php|awk -F "'" '{print $4}'`
    db_password=`grep 'DB_PASSWORD' $blog/wp-config.php|awk -F "'" '{print $4}'`    
    echo "DB_HOST: $db_host"
    echo "DB_NAME: $db_name"
    echo "DB_USER: $db_user"
    echo "DB_PASSWORD: $db_password"
 
    echo "DUMP REMOTE DB TO $remote_tmp_dir/$db_name.sql"
    ssh -i$ssh_key $ssh_user@$ssh_host -p $ssh_port <<EOF>> /dev/null 2>&1
mkdir -p $remote_tmp_dir
cd $remote_tmp_dir
mysqldump --user=$remote_mysql_root --password=$remote_mysql_password -c $db_name > $remote_tmp_dir/$db_name.sql
EOF
 
    echo "GET REMOTE DB $remote_tmp_dir/$db_name.sql TO $local_tmp_dir"
    scp -i$ssh_key -P$ssh_port $ssh_user@$ssh_host:$remote_tmp_dir/$db_name.sql $local_tmp_dir
    echo "CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_password';"
    echo "CREATE DATABASE $db_name;"
    echo "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' WITH GRANT OPTION;"
    mysql -u"$local_mysql_root" -p"$local_mysql_password" <<EOF
CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_password';
CREATE DATABASE $db_name;
GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' WITH GRANT OPTION;
EOF
 
    echo "IMPORT DUMP $local_tmp_dir/$db_name.sql TO DATABASE $db_name"
    mysql -u"$local_mysql_root" -p"$local_mysql_password" $db_name < $local_tmp_dir/$db_name.sql
 
    echo "REMOVE LOCAL/REMOTE $db_name DUMP"
    rm $local_tmp_dir/$db_name.sql
    ssh -i$ssh_key $ssh_user@$ssh_host -p $ssh_port <<EOF>> /dev/null 2>&1
rm $remote_tmp_dir/$db_name.sql
EOF
 
fi
 
if [ ! -f "/etc/apache2/sites-available/$vhost_server_name" ]; then
    echo "CREATE VHOST FOR $vhost_server_name"
    cat $vhost_template|sed "s/%BLOG_NAME%/"$vhost_server_name"/g" > /etc/apache2/sites-available/$vhost_server_name;
fi
 
if [ ! -f "/etc/apache2/sites-enabled/$vhost_server_name" ]; then
    echo "LINK /etc/apache2/sites-enabled/$vhost_server_name /etc/apache2/sites-available/$vhost_server_name"
    ln -s /etc/apache2/sites-available/$vhost_server_name /etc/apache2/sites-enabled/$vhost_server_name
fi
 
chown www-data:www-data -R $blog
<VirtualHost *:8080>
ServerAdmin romain.bureau@bayard-presse.com
DocumentRoot /home/www/%BLOG_NAME%/
ServerName %BLOG_NAME%
ErrorLog ${APACHE_LOG_DIR}/%BLOG_NAME%-error.log
CustomLog ${APACHE_LOG_DIR}/%BLOG_NAME%-access.log combined
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
<directory /home/www/%BLOG_NAME%/>
Options -Indexes +ExecCGI
AllowOverride All
order allow,deny
Allow from all
</directory>
</VirtualHost>
cd /var/www
bash /home/hio/migrate_wordpress.sh blog.hio.fr blog.hio.fr