Backup ya website files ni muhimu ili kulinda project yako dhidi ya:

Ajali za server au deletion ya bahati mbaya,

Uvunjaji wa usalama (malware, hacking),

Au makosa wakati wa updates.

πŸ”Ή 1. Kuelewa Website Backup

Backup ya website inahusisha nakala ya mafaili yote ya mfumo wako, kama:

PHP scripts

CSS & JS files

Uploaded images/files

Configuration files (.env, config.php)

🎯 Lengo ni kuzipakia kwa urahisi endapo mfumo utaharibika.

πŸ‘‰ Soma zaidi hapa: https://www.faulink.com

πŸ”Ή 2. Kutengeneza PHP Script ya Backup

Tengeneza faili jipya: backup_files.php

<?php
// Directory unayotaka kuhifadhi backup
$source_dir = __DIR__; // root ya project
$backup_dir = __DIR__ . "/file_backups/";

// Unda directory kama haipo
if (!is_dir($backup_dir)) {
mkdir($backup_dir, 0777, true);
}

// Tarehe ya backup
$date = date("Y-m-d_H-i-s");
$zip_file = $backup_dir . "website_backup_" . $date . ".zip";

// Unda ZIP archive
$zip = new ZipArchive();
if ($zip->open($zip_file, ZipArchive::CREATE) !== TRUE) {
exit("❌ Haiwezi kutengeneza backup file!");
}

// Function ya kuongeza mafaili kwenye zip
function addFolderToZip($dir, $zip, $base) {
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..') continue;
$path = "$dir/$file";
if (is_dir($path)) {
addFolderToZip($path, $zip, $base);
} else {
$zip->addFile($path, str_replace($base . '/', '', $path));
}
}
}

// Ongeza mafaili yote kwenye zip
addFolderToZip($source_dir, $zip, $source_dir);

// Funga ZIP file
$zip->close();

echo "βœ… Website backup imefanikiwa: $zip_file";
?>

πŸ”Ή 3. Kuzuia Backup ya Mafaili Yasiyotakiwa

Unaweza kuepuka mafaili au folda fulani (mfano: node_modules, backups/, vendor/)
kwa kuongeza kipimo ndani ya function:

$exclude = ['backups', 'file_backups', 'vendor', 'node_modules'];

if (in_array(basename($path), $exclude)) continue;


πŸ‘‰ Soma mfano kamili zaidi: https://www.faulink.com

πŸ”Ή 4. Ku-automate Backup kwa Cron Job (Linux)

Fungua terminal:

crontab -e


Ongeza mstari huu:

0 3 * * * /usr/bin/php /path/to/backup_files.php


πŸ” Hii itafanya backup kila siku saa 3 usiku (3 AM).

πŸ”Ή 5. Kuhifadhi Backups Nje ya Public Folder

Usihifadhi backups ndani ya public_html au www
β†’ Tumia directory ya juu (inaccessible from browser).

Mfano:

/home/user/
β”‚
β”œβ”€β”€ public_html/
β”‚ β”œβ”€β”€ index.php
β”‚
└── backups/
β”œβ”€β”€ website_backup_2025-11-12.zip

πŸ”Ή 6. Kuweka Backup Rotation

Usihifadhi backups nyingi sana (zitajaza disk).
Ongeza code hii kufuta backup za zamani:

$files = glob($backup_dir . "*.zip");
if (count($files) > 5) {
unlink($files[0]); // Futa backup ya zamani zaidi
}

πŸ”Ή 7. Email Notification Baada ya Backup
mail("admin@faulink.com", "Backup Completed", "Website backup imefanikiwa: {$zip_file}");

πŸ”Ή 8. Directory Structure Bora
project_root/
β”‚
β”œβ”€β”€ file_backups/
β”‚ β”œβ”€β”€ website_backup_2025-11-12.zip
β”‚
β”œβ”€β”€ backup_files.php
└── index.php

πŸ”Ή 9. Tahadhari za Usalama

βœ… Usihifadhi .zip backups ndani ya folder linalopatikana kwa URL.
βœ… Fanya encryption ya backup ukihitaji usalama zaidi.
βœ… Backup database na mafaili kwa nyakati tofauti.

πŸ‘‰ Soma zaidi kwenye: https://www.faulink.com

πŸ“ž Mawasiliano

Kwa msaada wa kitaalamu wa kutengeneza automated backup system kwa website yako:
πŸ“± WhatsApp: 0693118509