عن طريق سامبا للوصول عشوائي دون تركيب نظام الملفات؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام الجهاز الذي ليس لدي وصول الجذر، ونود أن الوصول إلى الملفات على الخادم سامبا في وضع وصول عشوائي. وأنا أعلم أنني يمكن نقل الملفات في مجملها باستخدام SMBCLIENT لكن لملفات كبيرة جدا (> 1GB) وأود أن لا مجرد التعامل معها كملفات النائية التي يمكنني القيام به الوصول العشوائي.

والمشكلة كما لوحظ أن ليس لدي وصول الجذر لهذا الجهاز (مربع لينكس) لذلك لا يمكن تحميل نظام الملفات سامبا بعيد.

هل هناك حل على مستوى المستخدم من شأنها أن تتيح لي الوصول بشكل عشوائي محتويات ملف على الخادم سامبا؟ يبدو أنه ينبغي أن يكون من الممكن أن تفعل كل شيء أن العميل نظام الملفات نواة يقوم به ولكن من تطبيق على مستوى المستخدم.

وأنا فقط بحاجة الى الوصول للقراءة فقط راجع للشغل ومكفول الملف البعيد لا للتغيير.

هل كانت مفيدة؟

المحلول

لإجابة على سؤالي الخاص بعد حفر حولها في مصدر سامبا: هناك libsmbclient مكتبة العميل الذي يضم كل ملف المعتاد التعامل مع الاشياء: smbc_open، smbc_fstat، smbc_lseek، smbc_read الخ على سبيل المثال، وهنا مقتطف كتبت فقط الذي يقرأ ملف الوراء (فقط للتحقق من ذلك كان يقوم صحيح تسعى):

fd = smbc_open(path, O_RDONLY, 0);
smbc_fstat(fd, &st);

for (offset = st.st_size - BUFLEN; offset > 0; offset -= BUFLEN) {
    smbc_lseek(fd, offset, SEEK_SET);
    smbc_read(fd, buffer, BUFLEN);
}

و(التدقيق إزالة الخطأ من أجل الوضوح)

نصائح أخرى

وحاول استخدام smbmount لتحميل الملفات من دون أذونات الجذر:

mkdir ~/temp
smbmount //{server}/{share} ~/temp -o username=username={username},password={password}

تحرير: تحديث لاستخدام smbmount بدلا من mount

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top