كيف يمكنني بناء عنوان ورل من محتوى ملف على دمية?
سؤال
لدي برنامج نصي النسخ الاحتياطي الذي يخزن أحدث الطابع الزمني النسخ الاحتياطي في عنوان ورل مثل هذا http://myaws.com/LATEST, ، يحتوي الملف فقط على سلسلة تمثل الطابع الزمني ، على سبيل المثال ، "201402230400".نفس البرنامج النصي تخزين النسخ الاحتياطية الحقيقية في http://myaws.com/201402230400/mycompany-dump-201402230400.gz و http://myaws.com/201402230400/mycompany-data-201402230400.tgz.
الشيء هو أنا خلق فئة دمية من شأنها أن تقرأ تلك عناوين المواقع واستعادة الملفات في بلدي فم الجديد على أساس أحدث قيمة الطابع الزمني.ما أنا في عداد المفقودين هو كيف يمكنني بناء عنوان ورل من مخزن المحتوى في ملف?
define download ($uri, $timeout = 300) {
exec {
"download $uri":
path => '/usr/bin',
command => "wget --timestamping -q '$uri' -O $name",
creates => $name,
timeout => $timeout
}
}
download {
"$latest_file":
uri => "http://myaws.com/LATEST",
timeout => 900;
}
download {
"$data_file":
uri => "http://myaws.com/file($latest_file)/mycompany-data-file($latest_file).tgz",
timeout => 900;
}
المكالمة ملف (lat أحدث ملف) لا يعمل كما هو متوقع.ما أفعله خطأ?
المحلول
أعتقد أنك سوف ترغب في استخدام generate
للحصول على أحدث الطابع الزمني بدلا من exec
داخل نوع مخصص.شيء من هذا القبيل ربما (لاحظ أنك بحاجة إلى تغيير تنسيق uri
للتحميل كذلك):
$latest_file = generate(
'/usr/bin/curl',
'-s',
'http://myaws.com/LATEST'
)
define download ($uri, $timeout = 300) {
exec {
"download $uri":
path => '/usr/bin',
command => "wget --timestamping -q '$uri' -O $name",
creates => $name,
timeout => $timeout
}
}
download {
"$data_file":
uri => "http://myaws.com/${latest_file}/mycompany-data-${latest_file}.tgz",
timeout => 900;
}