Ca y est je prend le temps de tester tes scripts.
Je n'ai pas réussi à lancer le .sh avec le planificateur de tâches OVH mutualisé,
alors j'ai commencé par utiliser le fichier folder_zip.php et j'y ai ajouté une connexion FTP.
Le zip du serveur intégral ne zip que les fichiers présents à la racine et pas tous les dossiers présents à la racine.
Mais le zip d'un edossier précis fonctionne très bien,
J'ai dont lancé le fichier folder_zip.php?dir=dossier1, puis folder_zip.php?dir=dossier2, ...
OK, j'ai les zip de chacun de mes dossiers.
Par contre mon script de connexion FTP ajouté en fin de fichier ne fonctionne pas, si vous avez une idée ou une info, je suis preneur car je reçois toujours la réponse "Impossible de se connecter au serveur $ftp_server" bien que les identifiants soient corrects ReTestés avec filezilla.
Peut-être que le serveur mutualisé OVH bloque les connexions sur un autre serveur FTP ?
Voici mon code avec connexion en fin de fichier :
Code:
";
if (!extension_loaded('zip') || !file_exists($source)) {
return false;
}
//print $source." ok1,
";
$zip = new ZipArchive();
if (!$zip->open($destination, ZIPARCHIVE::CREATE)) {
return false;
}
//print $destination." ok2,
";
$source = str_replace('\\', '/', realpath($source));
if (is_dir($source) === true)
{
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file)
{
$file = str_replace('\\', '/', realpath($file));
if (is_dir($file) === true)
{
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
}
else if (is_file($file) === true)
{
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
}
else if (is_file($source) === true)
{
$zip->addFromString(basename($source), file_get_contents($source));
}
return $zip->close();
}
function compressroot($source, $destination)
{
if (!extension_loaded('zip') || !file_exists($source)) {
return false;
}
$zip = new ZipArchive();
if (!$zip->open($destination, ZIPARCHIVE::CREATE)) {
return false;
}
$source = str_replace('\\', '/', realpath($source));
$filenames = array();
$iterator = new DirectoryIterator($source);
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
$file = $fileinfo->getFilename();
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
return $zip->close();
}
// $HTTP_GET_VARS n'est plus sécurisé
//$dir = (isset($HTTP_GET_VARS['dir'])) ? $HTTP_GET_VARS['dir'] : '';
// Remplacé par $_GET[] :
$dir = (isset($_GET['dir'])) ? $_GET['dir'] : '';
print "dir:".$dir;
// if ($dir != "") {
// compress('./'.$dir, '../sauvegardes/back_'.$dir.'.zip');
// } else {
// compressroot('./', '../sauvegardes/back_root.zip');
// }
$today = date("Y-m-d_H\Hi\ms\s");
if ($dir != "") {
compress('../'.$dir, './FTP/FTP_'.$dir.'_'.$today.'.zip');
} else {
compressroot('../', './FTP/FTP_root_'.$today.'.zip');
}
print "File Zipped
\n";
$file = '/FTP/FTP_'.$dir.'_'.$today.'.zip';
$remote_file = '/Disque dur/BackupOVH/FTP_'.$dir.'_'.$today.'.zip';
// Mise en place d'une connexion basique
$ftp_server = '1.2.3.4';
$ftp_user_name = 'freebox';
$ftp_user_pass = 'motdepassefreebox';
$conn_id = ftp_connect($ftp_server) or die("Impossible de se connecter au serveur $ftp_server"); ;
// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "Le fichier $file a té chargé avec succès\n";
} else {
echo "Il y a eu un problème lors du chargement du fichier $file\n";
}
// Fermeture de la connexion
ftp_close($conn_id);
?>