martes, 24 de junio de 2014

Script Perl Copias de Seguridad

#!/usr/bin/perl

# Ejecutar perl bk.pl ip_maquina cod_cliente cod_maquina tipo_copia [auto o manual] usuario_ftp pass_ftp

use DBI;
use Net::SFTP::Foreign;

#Datos de la conexión
$db="db_proyectint";
$host="datos.proyectint.org";
$port="3306";
$user="user_proyectint";
$pass="12Proyectint34*";
$connectionInfo="DBI:mysql:database=$db;$host:$port";

# Realizamos la conexión a la base de datos
$db = DBI->connect($connectionInfo,$user,$pass);

# Cogemos fecha desde MySQL
$qu_date="select sysdate()";
$sql_date = $db->prepare($qu_date);
$sql_date->execute();
$date = $sql_date->fetchrow_array();

# Inserto primeros datos de la copia
$query="insert into copias (cod_cliente,cod_maquina,fecha_ini,tipo_copia) values ('@ARGV[1]','@ARGV[2]','$date','@ARGV[3]')";
$sql = $db->prepare($query);
$sql->execute();

# Llamada al script bash SOLUCIONAR!!
`bash bk.sh @ARGV[0] @ARGV[2] @ARGV[1]`;
$n=0;
open (re,"/root/temp") or die "$!n";
while (<re>){
chomp;
@result[$n]=$_;
$n++;
}
close re;

# Actualizo datos de copia en BDD
if (@result[0] eq "OK"){
$up="update copias set fecha_fin = sysdate(), correcta= 'si', nombre_fichero = '@result[1]' where fecha_ini = '$date'";

# Subir a FTP el paquete
$sftp = Net::SFTP::Foreign->new("datos.proyectint.org",user => "@ARGV[4]", password => "@ARGV[5]") or die("No se pudo conectar al servidor: $!");
$sftp->put('/root/bk/'.@ARGV[1].'/'.@ARGV[2].'/'.@result[1]) or die "$!n";

# Elimino paquete
`rm /root/bk/@ARGV[1]/@ARGV[2]/@result[1]`;
print "Copia de seguridad realizada con exito\n";
}else{
$up="update copias set fecha_fin = sysdate(), correcta= 'no' where fecha_ini = '&date'";
print "Copia de seguridad no realizada\n";
}

$sql2 = $db->prepare($up);
$sql2->execute();
$sql_date->finish();

$sql2->finish();
$db->disconnect;

`rm /root/temp`;

Shell Script Copias de Seguridad

#! /bin/bash

# Ejecutar bash bk.sh ip_maquina cod_maquina cod_cliente

DATE=$(date "+%d%h%Y%H%M")
TO="/root/bk/$3/$2/rsync"
FROM="root@$1:/root/copias/$2/"

if test ! -d /root/bk/$3
then
mkdir /root/bk/$3
fi

if test ! -d /root/bk/$3/$2
then
mkdir /root/bk/$3/$2
fi

if test ! -d /root/bk/$3/$2/rsync
then
mkdir /root/bk/$3/$2/rsync
fi

if rsync --delete -avb $FROM $TO
then
cd /root/bk/$3/$2/rsync/
PAQ="BACKUP-$2-$DATE.tar"
tar cf ../$PAQ *
echo "OK" > /root/temp
echo $PAQ >> /root/temp
else
echo "no" > /root/temp
fi

martes, 17 de junio de 2014

PrestaShop: Cambiar todos los productos de una categoría

UPDATE `ps_product` SET `id_category_default`= [Nueva Categoria] WHERE `id_category_default`= [Antigua Categoria]

UPDATE ps_product_shop s, ps_product p SET s.id_category_default = p.id_category_default WHERE s.id_product = p.id_product

lunes, 2 de junio de 2014

Insertar Imagen en Página Principal de Moodle

Para insertar una imagen cualquiera en la Página Principal de Moodle debemos hacer cambios en el código del tema activo. Nos vamos al archivo PHP que se encarga del layout en nuestro tema (por ejemplo, en el tema afterburner es /theme/afterburner/layout/default.php) y Tras el siguiente código que aparece en el fichero:

<!-- END OF CUSTOMMENU AND NAVBAR -->
    <div id="page-content">
       <div id="region-main-box">
           <div id="region-pre-box">
               <div id="region-main">

Insertamos este código (cambiando el nombre de la web, el nombre y el tamaño de la imagen que queramos insertar):

<?php
$host3 = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host3 == 'midominio.es/') 
{
    echo '<p><img src="http://midominio.es/pix/cursos.jpg" width="705" height="386"></p>';
}
?>