كيف يمكنني بناء عنوان ورل من محتوى ملف على دمية?

StackOverflow https://stackoverflow.com//questions/22003181

  •  20-12-2019
  •  | 
  •  

سؤال

لدي برنامج نصي النسخ الاحتياطي الذي يخزن أحدث الطابع الزمني النسخ الاحتياطي في عنوان ورل مثل هذا 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;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top