Godziny otwarcia basenu w Malborku
Poniedziałek: 7:00, 12:40
Wtorek: 7:00, 13:35
Środa: 7:00
Czwartek: 7:00, 14:30
Piątek: 7:00
Sobota: 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00
Niedziela: 11:00, 12:00, 13:00, 14:00, 15:00, 17:00
Stan na 2013-04-25
How to get fresh file/mysql backup from remote on minimal effort.
Lets assume that we have a remote web server (with ssh access) and we want fresh backup of files and mysql databases. Of course we can login, type some commands and then sftp those files but lets do this on minimum effort:
Backup files (tar, gzip and ‘download’ them):
ssh user2@remote "tar cf - /var/www/somepage | gzip -c" > files.tar.gz
Backup MySQL database:
ssh user2@remote "mysqldump -pXXXXXX database | gzip -c" > mysql.gz
Lets merge those command and write a little bash script that will automate those activities:
#!/bin/bash now=$(date +"%Y%m%d%H%M") bckdir="/home/user/backups" ssh user2@remote "mysqldump -pXXXXXX databases | gzip -c" > $bckdir/$now.mysql.gz ssh user2@remote "tar cf - /var/www/somepage | gzip -c" > $bckdir/$now.files.tar.gz
where:
XXXXXXX is a mysql password,
database is our db to backup.
How to download archived videos from twitch.tv/justin.tv
This php script will download all archived videos from twitch.tv (and probably from justin.tv – because there is same api as on twitch) using wget. All videos would be saved to download folder (create it first) with date as a name and ‘show title’. File name is limited to 50 chars.
Downloading is done by parsing json files from justin, more info: Channel/archives api wiki.
<?php
$url = "http://api.justin.tv/api/channel/archives/xxxx.json?limit=100"; //where xxxx is a channel id or login
$c = curl_init($url);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json')
);
curl_setopt_array( $c, $options );
$json = curl_exec($c);
$json_a = json_decode($json,true);
$json_a = array_reverse($json_a);
foreach($json_a as $k => $v) {
if(!history_check(format_date($v['created_on']))){
exec('wget -c '.$v['video_file_url'].' -O "downloads/'.format_date($v['created_on']).' - '.format_title($v['title']).'.flv"', $array);
history_add(format_date($v['created_on']));
echo implode('"\n"', $array);
}
}
function format_date($date){
$out = preg_replace('/[^0-9\.]/', '', $date);
return $out;
}
function format_title($title){ //format title and limit to 50 chars
$out = preg_replace('/[^a-zA-Z \.]/','', $title);
$out = substr($out, 0, 50);
return $out;
}
function history_check($date){
$data = file_get_contents('history');
if(strpos($data, $date) !== FALSE)
{
$out = TRUE;
}
else
{
$out = FALSE;
}
return $out;
}
function history_add($date){
file_put_contents('history', $date."\n", FILE_APPEND);
}
?>
Usage:
Create download dir, save this source as get.php file and simply run it from command line (php-cli need to be installed):
php get.php
Take in mind that information about downloaded videos is stored in history file. This will avoid downloading videos which was downloaded before.
Run command on each file in directory
Most useful when you have many files in directory and bash doesn’t want to cooperate:
-bash: -: Argument list too long
First one:
for file in *; do ls -al "$file"; done
where * could be a file name or extension ex.: *.jpg
And much more easy to remember:
find . -exec ls -al {} \;
Change the created/modified time of files
You can manually change created/modified/last accessed time of files using power shell and bellow command:
Get-ChildItem * | foreach { $_.CreationTime = get-date "3/2/2013 1:00 pm"; $_.LastWriteTime
= get-date "3/2/2013 1:00 pm"; $_.LastAccessTime = get-date "3/2/2013 1:00 pm" }
Where * is a wildcard for all files in current directory. You can simply change it to file name etc.
Import CVS data to MySQL table
Import OpenGEO csv file into mysql.
Table structure:
id int(11) Auto Increment ip_start int(11) ip_end int(11) miasto text powiat text wojewodztwo text
File structure:
"IP START","IP END","MIASTO","POWIAT","WOJEWÓDZTWO" 522815488,522817535,"Wieluń","wieluński","Łódzkie" (...)
MySQL command:
mysql> load data local infile '/home/user/opengeo.csv' into table opengeo fields terminated by ',' enclosed by '"' lines terminated by '\n' (ip_start, ip_end, miasto, powiat, wojewodztwo); Query OK, 71513 rows affected, 4594 warnings (0.56 sec) Records: 71513 Deleted: 0 Skipped: 0 Warnings: 4592
PHP5 + suhosin warning
Im using Debian GNU/Linux wheezy/sid with latest PHP available from apt. Some time ago I found weird warning that shows up in logs when php file is loaded:
napi@debian:/home/napi$ php test.php PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/suhosin.so' - /usr/lib/php5/20100525+lfs/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0
Its harmful, but annoying.
To get rid of it just run this command as root:
dpkg -P php5-suhosin