How to mount a remote filesystem using sshfs
Installing sshfs, fuse and s3fs on Ubuntu
Thursday, 27 January 2011
Tuesday, 25 January 2011
Webform module out of memory
The webform module will give a PHP fatal out of memory error when downloading and if your result set is rather large ( tens of thousands of records)..
Issue is discussed here, along with patches
Issue is discussed here, along with patches
Thursday, 13 January 2011
Finding fragmented MySQL tables and optimising them - bash script
Via here
Note: if you just want to find fragmented tables and don't want to optimise, just comment out the "OPTIMIZE TABLE" line in the script below
Note: if you just want to find fragmented tables and don't want to optimise, just comment out the "OPTIMIZE TABLE" line in the script below
#!/bin/sh
echo -n "MySQL username: " ; read username
echo -n "MySQL password: " ; stty -echo ; read password ; stty echo ; echo
mysql -u $username -p"$password" -NBe "SHOW DATABASES;" | grep -v 'lost+found' | while read database ; do
mysql -u $username -p"$password" -NBe "SHOW TABLE STATUS;" $database | while read name engine version rowformat rows avgrowlength datalength maxdatalength indexlength datafree autoincrement createtime updatetime checktime collation checksum createoptions comment ; do
if [ "$datafree" -gt 0 ] ; then
fragmentation=$(($datafree * 100 / $datalength))
echo "$database.$name is $fragmentation% fragmented."
mysql -u "$username" -p"$password" -NBe "OPTIMIZE TABLE $name;" "$database"
fi
done
done
Wednesday, 12 January 2011
Find fragmented tables in MySQL
Via Mindraven:
Over time some of your MySQL tables may end up fragmented. If you run any type of diagnostic script like mysqltuner, it will even tell you how many of your tables are fragmented. You can easily fix this by optimizing the fragmented tables. The problem is, you might not know which tables are fragmented.
Here’s a quick little query you can run that will give you the tables that are fragmented and how badly fragmented they are:
Just in case anyone didn’t catch the optimize bit above. Once you’ve found your fragmentend tables, you can fix them with the following query, replacing %TABLENAME% with the actual table name:
optimize table %TABLENAME%
Over time some of your MySQL tables may end up fragmented. If you run any type of diagnostic script like mysqltuner, it will even tell you how many of your tables are fragmented. You can easily fix this by optimizing the fragmented tables. The problem is, you might not know which tables are fragmented.
Here’s a quick little query you can run that will give you the tables that are fragmented and how badly fragmented they are:
select TABLE_NAME, TABLE_SCHEMA, Data_free from information_schema.TABLES where TABLE_SCHEMA NOT IN ('information_schema', 'mysql') and Data_Free >0;
Just in case anyone didn’t catch the optimize bit above. Once you’ve found your fragmentend tables, you can fix them with the following query, replacing %TABLENAME% with the actual table name:
optimize table %TABLENAME%
JMeter and MySQL
Jmeter and MySQL - a How To on installation and configuration.
Tuesday, 21 December 2010
mysql dumping via an ssh tunnel
First , connect to the remote mysql instance via an ssh tunnel on port 10000
ssh -f -N -L 10000:localhost:3306 remoteuser@remoteserver
Try out the connection via the mysql client
mysql -u remote_sql_user --password=remote_sql_pass -h 127.0.0.1 -P 10000 remote_db_name
Type "show databases" , and you should see a list of databases available on the remote sql instance.
To dump out a database locally, quit the mysql client, and type :
mysqldump --host=127.0.0.1 --port=10000 --user=remote_sql_user ==password="remote_sql_pass" --verbose > /your_local_directory/name_of_db.sql
For very large db dumps, it is faster to use zcat & gzip, then pipe to mysql :
gzip name_of_db.sql
zcat name_of_db.sql.gz | mysql -u local_sql_user --password=local_sql_pass --database=name_of_db
ssh -f -N -L 10000:localhost:3306 remoteuser@remoteserver
Try out the connection via the mysql client
mysql -u remote_sql_user --password=remote_sql_pass -h 127.0.0.1 -P 10000 remote_db_name
Type "show databases" , and you should see a list of databases available on the remote sql instance.
To dump out a database locally, quit the mysql client, and type :
mysqldump --host=127.0.0.1 --port=10000 --user=remote_sql_user ==password="remote_sql_pass" --verbose > /your_local_directory/name_of_db.sql
For very large db dumps, it is faster to use zcat & gzip, then pipe to mysql :
gzip name_of_db.sql
zcat name_of_db.sql.gz | mysql -u local_sql_user --password=local_sql_pass --database=name_of_db
Friday, 17 December 2010
Convert m4a to mp3
Via the Debian Linux Desktop survival guide
Using faad, convert the m4a to wav:
$ faad -o abc.wav abc.m4a
Yes you read that right - faad has output as the first option, and input as the second option.
Then using lame convert wav to mp3. Bitrate is specified with the "-b" option.
$ lame -h -b 192 abc.wav abc.mp3
You can combine this into a script that will convert all m4a's in a directory into mp3s
Using faad, convert the m4a to wav:
$ faad -o abc.wav abc.m4a
Yes you read that right - faad has output as the first option, and input as the second option.
Then using lame convert wav to mp3. Bitrate is specified with the "-b" option.
$ lame -h -b 192 abc.wav abc.mp3
You can combine this into a script that will convert all m4a's in a directory into mp3s
for i in *.m4a
do
faad -o - "$i" | lame -h -b 192 - "${i%m4a}mp3"
done
Thursday, 16 December 2010
Git cheatsheets
Git cheat sheets via Github
Check status of your repo: git status
Committing: git commit -m "First import
Update local : git pull
See what files have been committed: git ls-files
Remove file:git rm [filename]
Add file to next commit: git add [file name]
Commit all changes to repo: git commit -a
Commit plus message :git commit -m "Message"
View log of your commits: git log
View your commits + graph : git log --stat
Log with pagination: git log -v
Create new tag , push to remote branch:
git tag "v1.3"
git push --tags
Create new branch : git branch [name of your new branch]
Pull new branch from remote repo: git fetch origin [remote-branch]:[new-local-branch]
View branches: git branch
View list of all existing branches: git branch -a
Check status of your repo: git status
Committing: git commit -m "First import
Update local : git pull
See what files have been committed: git ls-files
Remove file:git rm [filename]
Add file to next commit: git add [file name]
Commit all changes to repo: git commit -a
Commit plus message :git commit -m "Message"
View log of your commits: git log
View your commits + graph : git log --stat
Log with pagination: git log -v
Create new tag , push to remote branch:
git tag "v1.3"
git push --tags
Create new branch : git branch [name of your new branch]
Pull new branch from remote repo: git fetch origin [remote-branch]:[new-local-branch]
View branches: git branch
View list of all existing branches: git branch -a
Thursday, 9 December 2010
Changing page.tpl based on node type
Via here
If you use Drupal you may encounter the difficulty in setting up individual page.tpl.php for different node types. The is a simple solution to this problem but requires a few lines of code in your template.php file, found in your theme directory (/sites/all/themes/).
To begin:
Locate your template.php file in your theme directory.
At the bottom of your template.php file enter the following code:
function phptemplate_preprocess(&$vars, $hook) {The customizations can be seen in Devel along the lines of
switch ($hook){
case 'page':
// Add a content-type page template in second to last.
if ('node' == arg(0)) {
$node_template = array_pop($vars['template_files']);
$vars['template_files'][] = 'page-' . $vars['node']->type;
$vars['template_files'][] = $node_template;
}
break;
}
return $vars;
}
page-node-1.tpl.php -> page-story.tpl.php -> page-node.tpl.php -> page.tpl.php.
If you have to use the forums feature of Drupal you may want to prevent a name clash by implementing:
$vars['template_files'][] = 'page-nodetype-' . $vars['node']->type;
instead of
$vars['template_files'][] = 'page-' . $vars['node']->type;
Custom template for nodes of type "page"
A common query is :
Theme Developer module to the rescue (available here) : the answer is :
page-node.tpl.php
if i want to override page.tpl for nodes of type "page" what is the name is the tpl file I should use - node-page.tpl.php or page-node.tpl.php?
Theme Developer module to the rescue (available here) : the answer is :
page-node.tpl.php
Subscribe to:
Posts (Atom)