# upgrade packages
apt-get update
apt-get upgrade -y
# install ssh server
apt-get install openssh-server -y
apt-get install mysql-server -y
curl -L https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
# rvm requirements...
apt-get --no-install-recommends install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev
rvm install ruby
apt-get install tcl8.5 -y
wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz
tar -xzf redis-2.6.9.tar.gz
cd redis-2.6.9
make
make test
cd src
cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/bin/
cd ..
cp redis.conf /etc
# start redis
redis-server /etc/redis.conf &
# test redis
redis-cli ping
PONG
apt-get install gearman gearman-server -y
# check if service is running
/etc/init.d/gearman-job-server status
* gearmand is running
apt-get install libmysqlclient-dev -y
cd
mkdir ~/lib_mysqludf_json
cd ~/lib_mysqludf_json
wget http://www.mysqludf.org/lib_mysqludf_json/lib_mysqludf_json_0.0.2.tar.gz
tar -xzf lib_mysqludf_json_0.0.2.tar.gz
# remove shared object, and recompile
rm lib_mysqludf_json.so
gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c
# locate plugin directory
mysql -u root -pPASSWORD --execute="show variables like '%plugin%';"
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| plugin_dir | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
# copy shared object to plugin directory
cp lib_mysqludf_json.so /usr/lib/mysql/plugin/
# enable json_object method
mysql -u root -pPASSWORD --execute="create function json_object returns string soname 'lib_mysqludf_json.so'"
apt-get install libgearman-dev -y
cd
wget https://launchpad.net/gearman-mysql-udf/trunk/0.6/+download/gearman-mysql-udf-0.6.tar.gz
tar -xzf gearman-mysql-udf-0.6.tar.gz
cd gearman-mysql-udf-0.6
./configure --with-mysql=/usr/bin/mysql_config --libdir=/usr/lib/mysql/plugin/
make
make install
# enabled udf functions
mysql -u root -pPASSWORD --execute="CREATE FUNCTION gman_do_background RETURNS STRING SONAME 'libgearman_mysql_udf.so'"
mysql -u root -pPASSWORD --execute="CREATE FUNCTION gman_servers_set RETURNS STRING SONAME 'libgearman_mysql_udf.so'"
# set gearman server
mysql -u root -pPASSWORD --execute="SELECT gman_servers_set('127.0.0.1')"
# setup RVM gemset
mkdir ~/ruby
echo "rvm use --create ruby-1.9.3@redis_gearman" > ~/ruby/.rvmrc
cd ~/ruby
# new file: Gemfile; contents:
source 'https://rubygems.org'
gem 'gearman-ruby'
gem 'redis'
# execute bundle to install gems
bundle
#!/usr/bin/env ruby
require 'rubygems'
require 'gearman'
require 'redis'
require 'json'
servers = ['localhost']
worker = Gearman::Worker.new(servers)
REDIS_DELIMITER = ':'
$redis = Redis.new
module RedisWorker
def RedisWorker.work(data, job)
# decode json
json_data = JSON.parse data
# create redis key
redis_key = "user_page_views#{REDIS_DELIMITER}#{json_data['user_id']}"
$redis.lpush redis_key, data
true
end
end
worker.add_ability('redis_worker') do |data,job|
RedisWorker::work data,job
end
loop {worker.work}
chmod +x redis_worker.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'gearman'
require 'json'
servers = ['localhost']
client = Gearman::Client.new(servers)
taskset = Gearman::TaskSet.new(client)
data = '{"user_id":1,"timestamp":"2013-02-14 19:13:15","page":"http://www.google.com"}'
result = client.do_task('redis_worker', data)
puts result
chmod +x redis_client.rb
# in terminal 1, start worker
./redis_worker.rb
# in terminal 2, check gearman status & verify worker
(echo status ; sleep 0.1) | netcat 127.0.0.1 4730
redis_worker 0 0 1
# in terminal 3, monitor redis
redis-cli monitor
OK
# in terminal 4, run client test script
./redis_client.rb
true
# in terminal 3, verify redis lpush:
redis-cli monitor
OK
1361012555.700504 [0 127.0.0.1:34135] "lpush" "user_page_views:1" "{\"user_id\":1,\"timestamp\":\"2013-02-14 19:13:15\",\"page\":\"http://www.google.com\"}"
# add database & table
mysql -u root -pPASSWORD
mysql> create database redisgearman;
mysql> use redisgearman;
mysql> CREATE TABLE `user_page_views` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`page` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
mysql> exit
# add test record
mysql -u root -pPASSWORD redisgearman --execute="insert into user_page_views (user_id, page) values (1, 'http://www.google.com')"
# ensure json udf is working
mysql -u root -pPASSWORD redisgearman --execute="select json_object(user_id as \`user_id\`, timestamp as \`timestamp\`, page as \`page\`) as json from user_page_views"
+--------------------------------------------------------------------------------+
| json |
+--------------------------------------------------------------------------------+
| {"user_id":1,"timestamp":"2013-02-14 19:13:15","page":"http://www.google.com"} |
+--------------------------------------------------------------------------------+
DELIMITER $$
CREATE TRIGGER redisgearman.redis_gearman AFTER INSERT ON redisgearman.user_page_views
FOR EACH ROW BEGIN
SET @ret=gman_do_background('redis_worker', json_object(NEW.user_id as `user_id`, NEW.timestamp as `timestamp`, NEW.page as `page`));
END$$
DELIMITER ;
mysql -u root -pPASSWORD redisgearman < ~/trigger.sql
# example insert statement
insert into user_page_views (user_id, page) values (1, 'http://ericlondon.com/recent-posts');
# mysql insert => mysql trigger => gearman udf => ruby redis worker => redis insert..
# output from redis-cli monitor
redis-cli monitor
OK
1361327500.888805 [0 127.0.0.1:33649] "lpush" "user_page_views:1" "{\"user_id\":1,\"timestamp\":\"2013-02-19 21:31:40\",\"page\":\"http://ericlondon.com/recent-posts\"}"
#!/usr/bin/env ruby
require 'rubygems'
require 'redis'
require 'json'
require 'mysql2'
class RedisMysql
def initialize
@redis = Redis.new
@mysql = Mysql2::Client.new(:host => 'localhost', :username => 'root', :password => 'PASSWORD', :database => 'redisgearman')
@redis_results = []
end
def query(key, limit)
@redis_results = query_redis key,limit
return @redis_results if @redis_results.size >= limit
@mysql_results = query_mysql key, (limit-@redis_results.size)
@redis_results.concat @mysql_results
end
def query_redis(key, limit)
results = @redis.lrange key, 0, limit
return [] if results.nil?
results.collect {|r| JSON.parse r}
end
def query_mysql(key, limit)
# parse args
parts = key.split ':'
mysql_table = parts[0]
user_id = parts[1]
# get last timestamp from redis results
last_timestamp = @redis_results.last['timestamp'] unless @redis_results.empty?
where = []
where << "user_id = '#{@mysql.escape user_id}'"
where << "timestamp < '#{@mysql.escape last_timestamp}'" unless last_timestamp.nil?
sql = "
select *
from user_page_views
where #{where.join ' and '}
order by id desc
limit #{limit}"
results = @mysql.query sql
return [] if results.nil?
results.collect {|r| r}
end
end
rm = RedisMysql.new
results = rm.query 'user_page_views:1', 10
# debug
puts results
<?php
// define mysql credentials
$db_user = 'picture_data';
$db_pass = 'picture_data';
$db_database = 'picture_data';
$db_table = 'picture_data';
$db_host = 'localhost';
// connect to mysql database
$db = mysql_connect($db_host, $db_user, $db_pass);
// check for mysql connection
if (!$db) {
die('Could not connect to database.');
}
?><?php
//////////////////////////////////////////////////
// DATABASE SETUP
require_once('db.php');
setup_database();
//////////////////////////////////////////////////
// PROCESSING IMAGES
// specify path to images
$images_path = '/Users/Eric/Pictures/iPhoto Library/Originals';
// ensure directory exists
if (!is_dir($images_path)) {
die('Directory does not exist.');
}
// change directory
chdir($images_path);
// get a list of files
$files = `find . -type f | sed 's/^\.\///'`;
// explode files list on newline
$files = explode("\n", trim($files));
// define a list of file extensions to process
$file_extensions = array(
'jpg',
'jpeg',
'png',
'bmp',
'gif',
'tiff',
);
// loop through files
foreach ($files as $file_path) {
// get path info
$path_info = pathinfo($file_path);
$file_name = $path_info['basename'];
$file_extension = strtolower($path_info['extension']);
// check file extension
if (!in_array($file_extension, $file_extensions)) {
continue;
}
// get md5 hash of file
$file_md5 = md5_file($file_path);
// get file modified time
$file_modified = date('Y-m-d H:i:s', filemtime($file_path));
// create sql to insert record
$sql = sprintf(
"insert into `%s` (file_path, file_name, file_extension, file_md5, file_modified) values ('%s','%s','%s','%s','%s')",
mysql_real_escape_string($db_table),
mysql_real_escape_string($images_path . '/' . $file_path),
mysql_real_escape_string($file_name),
mysql_real_escape_string($file_extension),
mysql_real_escape_string($file_md5),
mysql_real_escape_string($file_modified)
);
// execute sql
$result = mysql_query($sql, $db);
}
//////////////////////////////////////////////////
// FUNCTIONS
function setup_database() {
global $db;
global $db_database;
global $db_table;
// create database if it is does not exist
$sql = sprintf(
"create database if not exists `%s`",
mysql_real_escape_string($db_database)
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// select database
$result = mysql_select_db($db_database, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// create table if it does not exist
$sql = sprintf("
CREATE TABLE IF NOT EXISTS `%s` (
`fid` int(11) NOT NULL AUTO_INCREMENT,
`file_path` varchar(255) NOT NULL,
`file_name` varchar(255) NOT NULL,
`file_extension` varchar(10) NOT NULL,
`file_md5` varchar(32) NOT NULL,
`file_modified` datetime NOT NULL,
PRIMARY KEY (`fid`),
KEY `idx_file_md5` (`file_md5`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1",
mysql_real_escape_string($db_table)
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// drop existing records from table
$sql = sprintf(
"truncate table `%s`",
mysql_real_escape_string($db_table)
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
}
?>
$ php scan.php
<?php
//////////////////////////////////////////////////
// DATABASE
require_once('db.php');
// select database
$result = mysql_select_db($db_database, $db);
// check for error
if (!$result) {
die(mysql_error());
}
//////////////////////////////////////////////////
// PROCESS REQUEST
$md5 = $_GET['md5'];
$index = intval($_GET['index']);
// fetch images with md5 index
$sql = sprintf("
select *
from `%s`
where file_md5 = '%s'
order by fid asc
",
mysql_real_escape_string($db_table),
mysql_real_escape_string($md5)
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// fetch results
$rows = array();
while ($row = mysql_fetch_object($result)) {
$rows[] = $row;
}
// get image data
$file_path = $rows[$index]->file_path;
$file_extension = $rows[$index]->file_extension;
header("Content-type: image/$file_extension");
readfile($file_path);
?><?php
//////////////////////////////////////////////////
// DATABASE SETUP
require_once('db.php');
// select database
$result = mysql_select_db($db_database, $db);
// check for error
if (!$result) {
die(mysql_error());
}
//////////////////////////////////////////////////
// FETCHING MD5S
// start session
session_start();
// check for session data
if (!is_array($_SESSION['md5s']) || empty($_SESSION['md5s'])) {
fetch_md5s();
}
// determine which md5 to show
$md5_index = intval($_GET['md5_index']);
// fetch images with md5 index
$sql = sprintf("
select *
from `%s`
where file_md5 = '%s'
order by fid asc
",
mysql_real_escape_string($db_table),
mysql_real_escape_string($_SESSION['md5s'][$md5_index])
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// fetch results
$rows = array();
while ($row = mysql_fetch_object($result)) {
$rows[] = $row;
}
// create image output in a table. note the image scr is calling the view-image.php script with $_GET arguments.
$output = "";
$output .= "<table><tr>";
foreach ($rows as $index => $data) {
$output .= "<td style='width: " . (100/count($rows)) . "%'>";
$output .= "<img style='width: 100%' src='/view-image.php?md5=" . $data->file_md5 . "&index=" . $index . "' />";
$output .= $data->file_name . "<br/>";
$output .= $data->file_path . "<br/>";
$output .= "</td>";
}
$output .= "</tr></table>";
$output .= "<a href='/view.php?md5_index=" . ($md5_index+1) . "'>Next >></a>";
print $output;
//////////////////////////////////////////////////
// FUNCTIONS
function fetch_md5s() {
global $db;
global $db_table;
// get a list of md5 hashes with dupes
$sql = sprintf("
select file_md5
from `%s`
group by file_md5
having count(*) > 1
",
mysql_real_escape_string($db_table)
);
$result = mysql_query($sql, $db);
// check for error
if (!$result) {
die(mysql_error());
}
// fetch results
$md5s = array();
while ($row = mysql_fetch_object($result)) {
$md5s[] = $row->file_md5;
}
// store md5s in session
$_SESSION['md5s'] = $md5s;
}
?>
$ yum update
$ yum install php53 php53-gd php53-mbstring php53-mysql php53-xml mysql-server httpd
$ chkconfig --level 2345 httpd on
$ chkconfig --level 2345 mysqld on
$ yum install subversion
$ mkdir /var/subversion
$ svnadmin create /var/subversion/example.com
$ svn mkdir file:///var/subversion/example.com/trunk -m "added trunk"
$ svn mkdir file:///var/subversion/example.com/branches -m "added branches"
$ svn mkdir file:///var/subversion/example.com/tags -m "added tags"
$ cd /var/www
$ wget http://ftp.drupal.org/files/projects/drush-7.x-4.4.tar.gz
$ tar -xzf drush-7.x-4.4.tar.gz
$ ln -s /var/www/drush/drush /usr/local/bin/drush
$ mkdir /var/www/vhosts
$ cd /var/www/vhosts
$ drush dl drupal
$ mv drupal-7.0/ example.com
$ cd /var/www/vhosts/example.com
$ svn co file:///var/subversion/example.com/trunk .
$ svn add * .htaccess
$ svn commit -m "downloaded drupal"
# make a folder for contrib modules
$ mkdir /var/www/vhosts/example.com/sites/all/modules/contrib
$ cd /var/www/vhosts/example.com/sites/all/modules/contrib
# note: in the below command, you may be prompted to choose which version of the Solr module to install. I choose option 2 for the Supported version
$ drush dl apachesolr
# commit to subversion
$ cd /var/www/vhosts/example.com/sites/all/modules
$ svn add contrib
$ svn commit -m "added contrib folder and apachesolr module"
# start mysql
$ /etc/init.d/mysqld start
# set root password
$ /usr/bin/mysqladmin -u root password 'new-password'
# create new database, user, and set permissions
$ mysql --execute="create database db_example"
$ mysql --execute="grant all privileges on db_example.* to 'example-user'@'localhost' identified by 'some_password'"
$ cd /etc/httpd/conf.d
# create a new file "example.com.conf", with the contents:
NameVirtualHost *:80
<Directory /var/www/vhosts>
AllowOverride All
</Directory>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/vhosts/example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
</VirtualHost>
$ cd /var/www
$ chown -R apache.apache drush*
$ chown -R apache.apache vhosts
$ /etc/init.d/httpd start
$ cd /var/www/vhosts/example.com
# note: you can set your user 1 username, password, email, etc in the following command if desired. type "drush help si" for more install options
$ drush site-install standard --sites-subdir=example.com --db-url=mysqli://example-user:some_password@localhost/db_example

# added repo file to get tomcat6:
$ cd /etc/yum.repos.d/
$ wget http://www.jpackage.org/jpackage50.repo
# install Java JDK:
$ yum install java-1.6.0-openjdk
# install tomcat6:
$ yum install tomcat6 tomcat6-admin-webapps tomcat6-webapps
# dang, dependency issue... (!)
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 from base has depsolving problems
--> Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 (base)
Error: Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 (base)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
# Fixing dependency issue (OPTIONAL):
$ mkdir ~/downloads
$ cd ~/downloads
$ wget http://plone.lucidsolutions.co.nz/linux/centos/images/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm
$ rpm -Uvh jpackage-utils-compat-el5-0.0.1-1.noarch.rpm
$ yum install tomcat6 tomcat6-admin-webapps tomcat6-webapps
# setting tomcat runlevels
$ chkconfig --level 2345 tomcat6 on
# starting tomcat
$ /etc/init.d/tomcat6 start

$ cd ~/downloads
# note: you may need to choose a different mirror to download
$ wget http://www.fightrice.com/mirrors/apache//lucene/solr/1.4.1/apache-solr-1.4.1.tgz
$ tar -xzf apache-solr-1.4.1.tgz
# copy/rename solr war file into Tomcat webapps directory
$ cp ~/downloads/apache-solr-1.4.1/dist/apache-solr-1.4.1.war /var/lib/tomcat6/webapps/solr.war
# copy solr files
$ cp -r ~/downloads/apache-solr-1.4.1/example/solr/ /var/lib/tomcat6/solr/
/var/lib/tomcat6/webapps/solr
$ cd /etc/tomcat6/Catalina/localhost
# create new file: "solr.xml", with the contents:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/var/lib/tomcat6/webapps/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/lib/tomcat6/solr" override="true" />
</Context>
# edit file: /etc/tomcat6/tomcat-users.xml, ensure similar contents exist:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin"/>
<role rolename="manager"/>
<user username="eric" password="supersecretpassword" roles="admin,manager"/>
</tomcat-users>
# edit file: /var/lib/tomcat6/webapps/solr/WEB-INF/web.xml, update section to reflect solr path:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/var/lib/tomcat6/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
$ cp /var/www/vhosts/example.com/sites/all/modules/contrib/apachesolr/protwords.txt /var/lib/tomcat6/solr/conf/
$ cp /var/www/vhosts/example.com/sites/all/modules/contrib/apachesolr/schema.xml /var/lib/tomcat6/solr/conf/
$ cp /var/www/vhosts/example.com/sites/all/modules/contrib/apachesolr/solrconfig.xml /var/lib/tomcat6/solr/conf/
$ cd /var/lib
$ chown -R tomcat.tomcat tomcat6/
$ /etc/init.d/tomcat6 restart

/var/log/tomcat6/catalina.out
$ cd /var/www/vhosts/example.com
$ drush en apachesolr apachesolr_search apachesolr_taxonomy apachesolr_access --uri=example.com

$ cp ~/downloads/apache-solr-1.4.1/example/multicore/solr.xml /var/lib/tomcat6/solr/
$ mkdir /var/lib/tomcat6/solr/example.com
cp -r /var/lib/tomcat6/solr/conf /var/lib/tomcat6/solr/example.com/conf/
# edit file: /var/lib/tomcat6/solr/solr.xml, added <core> section for each site:
<cores adminPath="/admin/cores">
<core name="example.com" instanceDir="example.com" />
</cores>
$ /etc/init.d/tomcat6 restart
#!/bin/bash
# show commands being executed, per debug
set -x
# define database connectivity
_db="csv_imports"
_db_user="csv_imports"
_db_password="changeme"
# define directory containing CSV files
_csv_directory="/path/to/the/csv/files"
# go into directory
cd $_csv_directory
# get a list of CSV files in directory
_csv_files=`ls -1 *.csv`
# loop through csv files
for _csv_file in ${_csv_files[@]}
do
# remove file extension
_csv_file_extensionless=`echo $_csv_file | sed 's/\(.*\)\..*/\1/'`
# define table name
_table_name="${_csv_file_extensionless}"
# get header columns from CSV file
_header_columns=`head -1 $_csv_directory/$_csv_file | tr ',' '\n' | sed 's/^"//' | sed 's/"$//' | sed 's/ /_/g'`
_header_columns_string=`head -1 $_csv_directory/$_csv_file | sed 's/ /_/g' | sed 's/"//g'`
# ensure table exists
mysql -u $_db_user -p$_db_password $_db << eof
CREATE TABLE IF NOT EXISTS \`$_table_name\` (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
eof
# loop through header columns
for _header in ${_header_columns[@]}
do
# add column
mysql -u $_db_user -p$_db_password $_db --execute="alter table \`$_table_name\` add column \`$_header\` text"
done
# import csv into mysql
mysqlimport --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by="\n" --columns=$_header_columns_string -u $_db_user -p$_db_password $_db $_csv_directory/$_csv_file
done
exit
./import.sh
$ mysql -u csv_imports -pchangeme csv_imports --execute="select * from albums"
+----+-------------+---------------------+
| id | band | album |
+----+-------------+---------------------+
| 1 | band | album |
| 2 | black keys | attack & release |
| 3 | the dodos | no color |
| 4 | the xx | xx |
| 5 | surf city | kudos |
| 6 | toro y moi | underneath the pine |
| 7 | cut copy | zonoscope |
| 8 | twin shadow | forget |
+----+-------------+---------------------+
$ mysqldump -u user -pPASSWORD -h hostname database > database.sql
$ mysqldump database > database.sql
Eric-Londons-MacBook-Pro:backup Eric$ mysql --execute="show databases"
+---------------------+
| Database |
+---------------------+
| customers |
| db_pics_ericlondon |
| db_thedrupalblog_d6 |
| drupal |
| drupal-pics |
| drupalmusicproject |
| itunes |
+---------------------+
Eric-Londons-MacBook-Pro:backup Eric$ mysql --execute="show databases" | awk '{print $1}'
Database
customers
db_pics_ericlondon
db_thedrupalblog_d6
drupal
drupal-pics
drupalmusicproject
itunes
Eric-Londons-MacBook-Pro:backup Eric$ mysql --execute="show databases" | awk '{print $1}' | grep -iv ^Database$
customers
db_pics_ericlondon
db_thedrupalblog_d6
drupal
drupal-pics
drupalmusicproject
itunes
Eric-Londons-MacBook-Pro:backup Eric$ mysql --execute="show databases" | awk '{print $1}' | grep -iv ^Database$ | sed 's/\(.*\)/mysqldump \1 > \1.'$(date +"%Y%m%d")'.sql/'
mysqldump customers > customers.20100825.sql
mysqldump db_pics_ericlondon > db_pics_ericlondon.20100825.sql
mysqldump db_thedrupalblog_d6 > db_thedrupalblog_d6.20100825.sql
mysqldump drupal > drupal.20100825.sql
mysqldump drupal-pics > drupal-pics.20100825.sql
mysqldump drupalmusicproject > drupalmusicproject.20100825.sql
mysqldump itunes > itunes.20100825.sql
Eric-Londons-MacBook-Pro:backup Eric$ mysql --execute="show databases" | awk '{print $1}' | grep -iv ^Database$ | sed 's/\(.*\)/mysqldump \1 > \1.'$(date +"%Y%m%d")'.sql/' | sh
Eric-Londons-MacBook-Pro:backup Eric$ ls -1
customers.20100825.sql
db_pics_ericlondon.20100825.sql
db_thedrupalblog_d6.20100825.sql
drupal-pics.20100825.sql
drupal.20100825.sql
drupalmusicproject.20100825.sql
itunes.20100825.sql