နေ့စဉ်ဆာဗာပြုပြင်ထိန်းသိမ်းမှုတွင်ဝေးလံခေါင်ဖျားသော FTP ဆာဗာများသို့ပုံမှန်အရန်ကူးခြင်းများမှာပုံမှန်လည်ပတ်မှုတစ်ခုဖြစ်သည်။ သို့ရာတွင် command များတင်ခြင်းအတွက်သာမှီခိုခြင်းသည်အရန်ကူးဖိုင်များတည်ရှိခြင်းသို့မဟုတ်အောင်မြင်စွာအပ်နှံထားကြောင်းသေချာစေရန်မဖော်ပြထားပါ။ ထို့ကြောင့် PHP_RAWList function နှင့် System စီမံကိန်းရေးဆွဲခြင်းလုပ်ငန်း (CRON) ယန္တရားကို FTP တွင်အလိုအလျောက်ရှာဖွေတွေ့ရှိခြင်းအားအကောင်အထည်ဖော်ရန်စနစ်စီမံကိန်းလုပ်ငန်းတာဝန် (CROS) ယန္တရားကိုကျွန်ုပ်တို့ပေါင်းစပ်နိုင်သည်။
ဤဆောင်းပါးသည် PHP code ကို အသုံးပြု. FTP လမ်းညွှန်ဖိုင်များကိုစာရင်းပြုစုရန်နှင့်ဖိုင်များပျောက်ဆုံးနေသောအခါသို့မဟုတ်ပုံမှန်မဟုတ်သောအခါသတိပေးချက်များကိုချက်ချင်းပေးပို့ရန်အတွက်ကြော်ငြာများကိုပြုလုပ်ရန် CROS ကိုအသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
သင်၏ကုဒ်ကိုမစတင်မှီ, အောက်ပါအချက်များမှာသေချာအောင်လုပ်ပါ။
လက်လှမ်းမီနိုင်သော FTP server ရှိသည်။
PHP ပတ်ဝန်းကျင်သည် FTP_ * လုပ်ဆောင်ချက်များကိုထောက်ပံ့သည် ( FTP extension ကိုဖွင့်ရန်လိုအပ်သည်),
Cron Timing Tasks ကို Linux လက်အောက်ရှိ Configure task များကို configure လုပ်ခြင်း,
အသိပေးချက်များကိုသင် (အီးမေးလ်, webhook, dingtalk စသည်) ကိုလက်ခံရရှိနိုင်သည်။
FTP တွင် Backup ဖိုင်ရှိ, ရှိမရှိရှာဖွေရန်အောက်ပါ PHP script ဖြစ်သည်။
<code> & lt; php // ftp configuration ကို
$ ftp_host = 'ftp.gitbox.net';
$ ftp_user = 'ftp_user';
$ ftp_pass = 'ftp_password';
$ ftp_dir = '/ backups /';
$ မျှော်မှန်းထားသည် = 'backup_' ။ နေ့စွဲ ('YMD') ။ '.zip';
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$ can = ftp_connect ($ ftp_host);
(! $ conn) {
ထွက်ပေါက် ("" FTP server ထဲသို့မဆက်သွယ်နိုင်ပါ);
}
// လော့ဂ်အင်
if (! FTP_Login ($ Cons, $ ftp_user, $ ftp_pass))
ftp_close ($ con);
ထွက်ပေါက် ("FTP login မအောင်မြင်ပါ);
}
// switch လမ်းညွှန်
IF (! FTP_CHDIR ($ CON, $ ftp_dir)) {
ftp_close ($ con);
ထွက်ပေါက် ("ပစ်မှတ်လမ်းညွှန် \ n" ကိုမထည့်နိုင်ပါ။
}
// ဖိုင်စာရင်းကိုရယူပါ
$ RW_LIST = ftp_RAWList ($ CON) ။ ");
$ around = false;
foreach ($ Raw_list quer as) {
$ အစိတ်အပိုင်းများ = preg_split ("/ \ s + /", $ လိုင်း);
$ filename = အဆုံး ($ အစိတ်အပိုင်းများ);
IF ($ filename === $ area_file) {
$ found = စစ်မှန်တဲ့;
ချိုး;
}
}
ftp_close ($ con);
// output ရလဒ်များသို့မဟုတ်အသိပေးချက်များပေးပို့ပါ
လျှင် ($ တွေ့ရှိချက်) {
ECHO "FILE $ မျှော်မှန်းထားသည်။
} အခြား
// မေးလ်သို့မဟုတ် webhook သတိပေးချက်များဤနေရာတွင်ပေါင်းစည်းနိုင်ပါတယ်
ECHO "သတိပေးချက် - FILE $ မျှော်မှန်းထားသည်။
// file_get_contents (" https://gitbox.net/notificate?mpsg=backup_nighting&file=$expected_file ");
}
</ code>
FTP_RAWLIST () ဖိုင်သတင်းအချက်အလက်စာရင်းကို Unix Ls -l နှင့်ဆင်တူသည့်ဖိုင်သတင်းအချက်အလက်စာရင်းကိုပြန်ပို့ပြီးဖိုင်အမည်ကိုကိုယ်တိုင်ဖြေရှင်းရန်လိုအပ်သည်။
နေ့စွဲ ('YMD') သည်တစ်နေ့တာ၏အရန်ကူးယူထားသောဖိုင်ကို dynamurce file ကို dynamally ထုတ်လုပ်ရန်အသုံးပြုသည်။
https://gitbox.net/notify ကဲ့သို့သော Web API ကိုခေါ်ဆိုခြင်းကဲ့သို့သော အခြား ဌာနခွဲတွင် Custom Alarm System ကိုသင်ရယူနိုင်သည်။
3 A.m တွင် backup ဖိုင်များကိုအလိုအလျောက်ရှာဖွေလိုပါကနေ့စဉ်နေ့တိုင်း cron task ကိုထည့်ပါ။
crontab -e
ထို့နောက်ထည့်ပါ
0 3 * * * /usr/bin/php /path/to/backup_checker.php >> /var/log/backup_check.log 2>&1
/path/tebackup_checker.php script လမ်းကြောင်းကိုသေချာအောင်လုပ်ပါ။
Logging : လွယ်ကူသောခြေရာခံများအတွက်ဖိုင်များကိုမှတ်တမ်းတင်ရန်ရှာဖွေတွေ့ရှိမှုရလဒ်များကိုရေးပါ။
Multi-FTP အထောက်အပံ့ - FTP သတင်းရင်းမြစ်မျိုးစုံကိုထောက်ပံ့ရန်အတွက်လုပ်ဆောင်ချက်များအဖြစ် encapsulated လုပ်နိုင်သည်။
ခြွင်းချက်ကိုင်တွယ်ခြင်း - Retry ယန္တရားနှင့်အသေးစိတ်အမှားမှတ်တမ်းကိုထည့်ပါ။
လုံခြုံရေး - စကားဝှက်များကို scripts များဖြင့်သိမ်းဆည်းခြင်းမပြုပါနှင့် ။
PHP ၏ FTP_RAWLIST ၏လုပ်ဆောင်မှုသည် Cron Time Tasks နှင့်ပေါင်းစပ်ထားသော PHP ၏ FTP_RAWLIST Function မှတစ်ဆင့် FTP backup ဖိုင်များ၏အလိုအလျောက်ထောက်လှမ်းရေးယန္တရားကိုထိရောက်စွာအကောင်အထည်ဖော်နိုင်သည်။ ဤဖြေရှင်းချက်သည်ပေါ့ပါးပြီးပြောင်းလွယ်ပြင်လွယ်ရှိပြီးအသေးစားနှင့်အလတ်စားစီမံကိန်းများကိုလျင်မြန်စွာဖြန့်ကျက်ရန်သင့်တော်သည်။ မြင့်မားသောရန်ယုံကြည်စိတ်ချရမှုလိုအပ်ချက်များရှိသောစနစ်များအတွက်ထိုကဲ့သို့သောအလိုအလျောက်စစ်ဆေးခြင်းနည်းလမ်းများသည်မရှိမဖြစ်လိုအပ်သောအာမခံချက်ဖြစ်သည်။