Shell : script de sauvegarde de dossier

Script qui génère un tar.gz du named.conf et du dossier zones tous les jours à  3h du matin et supprime les sauvegardes de plus de 2 mois.

 

Créer le fichier backup_01.sh

nano /var/www/test/backup01/backup_01.sh
  • copier dedans le code ci-dessous :

 

#!/bin/sh

#definition des variables
dir=/var/www/test/dir01
bkdir=/var/www/test/backup01
date=`date "+%F-%H%M%S"`

#suppression des sauvegardes de plus de 2 mois
find . -maxdepth 1 -type f -user root -ctime +59 -name "bkp01_*.tar.gz" -exec rm {}  \;
#generation de la sauvegarde journaliere
tar -zcvf $bkdir/bkp01_ns01_$date.tar.gz $dir/

 

Editer le fichier /etc/crontab

nano /etc/crontab
  • ajouter la ligne ci-dessous :
0 3 * * * root /bin/sh  /var/www/test/backup01/backup_01.sh
  • Le script s’exécutera tous les jours à  3h du matin avec le compte root

Liferay : Changer le port d’afficher de :8080 => :80

Changer le port d’afficher de :8080 => :80

Dans $LIFERAY_HOME/conf/server.xml

Changer la ligne :

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />

En

<Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />

Nettoyer un fichier rtf : rtf to txt

Si vous devez nettoyer des données mises en forme en rtf, en gros : RTF => TXT

Voici un script qui peut vous aider par contre vous devez installer unrtf sur votre serveur (testé sur ubuntu)

  • Le script :
/**
 * Dans cette exemple le rtf est une chaine de caractere mais cela peut être un fichier text.
 * Sources :http://www.gnu.org/software/unrtf/unrtf.html
 */
$str ='{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fnil\fcharset0 MS Shell Dlg;}}{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\f0\fs17 samples sent from Pronic Inc in Michigan to\par Main Factory in France\par FEDEX Invoice# 544425\par .\par \pard\f1\fs17 Payment Terms : \par - Deposit of 10% at reception of die design = 244.74 USD\par - Balance of 40% at delivery at the stamping facility (30 days net) = 911.59 USD\par - Balance of 5% after DDAP (60 days maximum after delivery i.e. maximum 02/5/2011) = 63.69 USD\par \pard - Balance of 5% after final customer approval (120 days maximum after delivery i.e. maximum 04/5/2011) = 63.69 USD\f0\fs17\par } '; 

$rtfbuf = strtr($str, array("\r\n"=>"","\t"=>""));
file_put_contents("in", utf8_decode($str));
$last_line = system('unrtf -t text in > out', $retval);
$rtfbuf = file_get_contents("out");
$rtfbuf = explode(chr(10),$rtfbuf);
$rtftest=false; 

if(count($rtfbuf)<>0){
foreach($rtfbuf as $v) {
if($rtftest) $rtfout[]= $v.chr(10);
elseif(trim($v) =="-----------------") $rtftest=true;
else continue;
}
}
print_r($rtfout);

function URLEncode (clearString)

Equivalent à  urlencode($str) de php mais pour javascript

function URLEncode (clearString) {
var output = '';
var x = 0;
clearString = clearString.toString();
var regex = /(^[a-zA-Z0-9_.]*)/;
while (x < clearString.length) {
var match = regex.exec(clearString.substr(x));
if (match != null && match.length > 1 && match[1] != '') {
output += match[1];
x += match[1].length;
}
else {
if (clearString[x] == ' ') output += '+';
else {
var charCode = clearString.charCodeAt(x);
var hexVal = charCode.toString(16);
output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
}
x++;
}
}
return output;
}

source :  http://cass-hacks.com/articles/code/js_url_encode_decode/

Javascript : function ipValid (ip, type)

la fonction ipValid accèpte 2 paramètres :

  • ip : (string) une chaà®ne de caractère qui doit être testée comme une adresse IP.
  • type : (number) 4 ou 6 pour tester une IPv4 ou IPv6
function ipValid(ip,type) {
if(type==4) reg = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ig;
else reg = /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/ig;
return ip.match(reg);
}