Скрипт за архивиране на PHP за архивиране само на public_html

$filename= "Backup.tar";   // The name (and optionally path) of the dump file 
$ftp_server = "IP";      // Name or IP. Shouldn't have any trailing slashes and shouldn't be prefixed with ftp:// 
$ftp_port = "21";   // FTP port - blank defaults to port 21 
$ftp_username = "User";      // FTP account username 
$ftp_password = "Pass";      // FTP account password - blank for anonymous 
$filename = "public_html/backups/" . $filename . ".gz"; 

$command = "tar cvf ~/$filename ~/*"; 
$result = exec($command); 

$command = "gzip -9 -S .gz ~/$filename"; 
$result = exec($command); 

Това е моят работен архив, който използвам. Архивира всичко на сървъра, включително имейли (например /mail/. Искам да архивирам само папката /public_html и всички поддиректории под нея. Създава файл tar.gz в папката /public_html/backups/. PHP скриптът също се изпълнява от папката /public_html/backups/ Някаква идея как да ограничите това, което се записва от '/' до '/public_html/'? Благодаря!


person Tom    schedule 08.01.2012    source източник


Отговори (1)


просто трябва да промените третия вход на командата tar

$filename= "Backup.tar";   // The name (and optionally path) of the dump file 
$ftp_server = "IP";      // Name or IP. Shouldn't have any trailing slashes and shouldn't be prefixed with ftp:// 
$ftp_port = "21";   // FTP port - blank defaults to port 21 
$ftp_username = "User";      // FTP account username 
$ftp_password = "Pass";      // FTP account password - blank for anonymous 
$filename = "public_html/backups/" . $filename . ".gz"; 

$command = "tar cvf ~/$filename /public_html/*"; 
$result = exec($command); 

$command = "gzip -9 -S .gz ~/$filename"; 
$result = exec($command); 
person MrGlass    schedule 08.01.2012
comment
+1 Открих, че командата без /* е по-добра, защото в противен случай няма да включва файлове, започващи с точка: tar cvf ~/$filename /public_html - person noob; 08.01.2012
comment
Опитах това, но получих грешка: Предупреждение: ftp_put(public_html/backups/Full_Account_Backup.tar.gz) [function.ftp-put]: не успя да отвори поток: Няма такъв файл или директория в /home/USER/public_html/backups /site_cron_backup.php на ред 48 FTP качването е неуспешно. Предупреждение: unlink(public_html/backups/Full_Account_Backup.tar.gz) [function.unlink]: Няма такъв файл или директория в /home/USER/public_html/backups/site_cron_backup.php на ред 63 Бих публикувал пълния скрипт, но мога не в коментарите, твърде е дълго - person Tom; 08.01.2012
comment
Не работи, както предложих, но работи, както го казахте по-горе? също опитайте: $command = tar cvf ~/$filename ~/public_html/*; - person MrGlass; 09.01.2012
comment
@MrGlass Благодаря, това свърши работа! Има ли начин да изключите папка под public_html? Например архивирайте целия public_html с изключение на public_html/backups. Надявам се, че не излагам късмета си. Благодаря отново! - person Tom; 09.01.2012
comment
Не съм толкова запознат с командата tar, така че не мога да помогна с това. Сигурен съм, че има някакъв начин - person MrGlass; 09.01.2012