:::: MENU ::::
Browsing posts in: Snippets

Useful curl

Headers only

--head – performs HEAD http request (not GET).

curl --head https://www.wp.pl/

Content + headers

--get – performs GET request
-i – include headers

curl --get -i https://www.wp.pl/


Low bandwidth copy

So, you have to copy one directory into another on your server and you don’t want to kill the machine?

Instead of

cp -r master master_copy

use

rsync --bwlimit=30000 -av master/ master_copy/

The –bwlimit=KBPS switch is for limiting I/O bandwidth.


Grep with context

Small thing but extremely useful. Getting context with grep.

-C – Print num lines of leading and trailing context surrounding each match. The default is 2 and is equivalent to -A 2 -B 2. Note: no whitespace may be given between the option and its argument.

grep -C 5 file.txt


Full MySQL dump

If you would like to dump all tables and triggers and stuff try this one:

mysqldump -uUSER -p -R --opt --triggers DB > DB_DUMP.sql

but if you have some troubles with permissions for locking tables use --lock-tables=false

mysqldump -uUSER -p -R --opt --triggers --lock-tables=false DB > DB_DUMP.sql

and to dump all databases you have

mysqldump -uUSER -p -R --opt --triggers --lock-tables=false --all-databases > DB_DUMP.sql

also, great post on StackExchange with a script for dumping all databases without databases like `mysql`, `information_schema`, `performance_schema`, `sys`.

MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
#
# Collect all database names except for
# mysql, information_schema, and performance_schema
#
SQL="SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN"
SQL="${SQL} ('mysql','information_schema','performance_schema')"

DBLISTFILE=/tmp/DatabasesToDump.txt
mysql ${MYSQL_CONN} -ANe"${SQL}" > ${DBLISTFILE}

DBLIST=""
for DB in `cat ${DBLISTFILE}` ; do DBLIST="${DBLIST} ${DB}" ; done

MYSQLDUMP_OPTIONS="--routines --triggers --single-transaction"
mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} --databases ${DBLIST} > all-dbs.sql


iframe communication on different domains, Facebook App example

You have a Facebbok App. When you go to that app you have a Facebook page and your app is embedded via iframe.

Later on it turns out that within your code you have an iframe with something, lets say some kind of form but in different domain. And you have a problem, because due to Same Domain Origin Policy you can’t talk between those iframes. There is a nice solution for that.

You can use a friendly helper from main domain that is embedded in forms iframe, as 3rd level you’d say.

So the main idea is to change iframe src if you form file, where you can embed this helper.

Take a look on this brief schema.

Code

facebook.html

<html>
	<body>
		<p>FACEBOOK</p>
		
		<iframe src="http://domain-a.com/app.html" style="width: 500px; height: 300px;"></iframe>
	</body>
</html>

http://domain-a.com/app.html

<html>
	<body>
		<p>YOUR FACEBOOK APP</p>
		
		<iframe src="http://domain-b.com/form.html" id="form"></iframe>

		<script type="text/javascript">
			function redirect(url){  
			    window.location.href = url;
			}
			 
			function resize() {
			    document.getElementById('form').height = 500;
			}
		</script>
	</body>
</html>

http://domain-b.com/form.html

<html>
	<body>
		<iframe id="helper" src="" width="0" height="0" ></iframe>
		 
		<p>EXTERNAL FORM</p>
		 
		<a onclick="redir();">REDIR</a>
		<a onclick="resize();">RESIZE</a>
		 
		<script type="text/javascript">
			function redir() {
			    var helper = document.getElementById('helper');
			    helper.src = "http://domain-a.com/iframeparent/helper.html?action=redir";
			}
			 
			function resize() {
			    var helper = document.getElementById('helper');
			    helper.src = "http://domain-a.com/iframeparent/helper.html?action=resize";
			}
		</script>
	</body>
</html>

http://domain-a.com/iframeparent/helper.html

<html> 
	<body onload="start();">
		<script type="text/javascript">
			function start(){
			    var action = getParam('action');
			     
			    if (action =='redir') {
			        parent.parent.redirect('http://www.onet.pl/');
			    } else if (action == 'resize') {
			        parent.parent.resize();
			    }
			}
			 
			function getParam( name )
			{
			  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
			  var regexS = "[\\?&]"+name+"=([^&#]*)";
			  var regex = new RegExp( regexS );
			  var results = regex.exec( window.location.href );
			  if( results == null )
			    return "";
			  else
			    return results[1];
			}
		</script>
	</body>
</html>

source: Resizing an iframe based on content


Pages:123