Xuất đường dẫn NFS có chứa - - (dấu gạch ngang)


10

Tôi đang gặp một chút khó khăn với tệp xuất NFS.

Cụ thể, tôi không thể tìm cách xuất thư mục chứa "-" trong tên đường dẫn.

Hướng dẫn sử dụng (xuất khẩu (5)):

Also, each line may have one or more specifications for default options 
after the path name, in the form of a dash ("-") followed by an option 
list. The option list is used for all subsequent exports on that line 
only.

Sau đó, nó tuyên bố:

If an export name contains spaces it should be quoted using double quotes. 
You can also specify spaces or other unusual character in the export name 
using a backslash followed by the character code as three octal digits.

Thật không may, đó không phải là trường hợp. Cụ thể, nếu tên đường dẫn chứa "-", nguyên văn hoặc với \ 055 hoặc được đặt trong dấu ngoặc kép, nó vẫn chỉ tên mà không có "-"

Có ý kiến ​​gì không? Tôi có một số lượng lớn các thư mục, tất cả các hình thức

  • / vol / buildsystem-s3c2440
  • / vol / buildsystem-tao3530

và tôi muốn có tất cả chúng có sẵn như là xuất khẩu nfs. Không thay thế "-" bằng "_" ở mọi nơi trong tập lệnh, có thể thực hiện bằng "-" không?


Tôi không có câu trả lời chắc chắn, nhưng điều này đã xuất hiện trong đầu tôi: Bạn có sẵn trình quản lý nfs nào đó không (có thể là một số ứng dụng X cheesy) sẽ tạo tệp xuất cho bạn? Có thể thử nó trên máy kiểm tra chỉ để kiểm tra cú pháp và sau đó thực hiện trên hộp trong câu hỏi. Chỉ cần một suy nghĩ ...

Tôi không biết bất kỳ tiện ích nào như vậy ...
qdot

1
Bạn có phiên bản nào của nfs-utils?
Kjetil Jørgensen

Hoạt động với tôi theo Debian lenny (NFS utils 1.1.2, kernel 2.6.26) với /var/tmp/foo-bar localhost(all_squash,async,no_subtree_check)in /etc/exports.
Gilles 'SO- ngừng trở nên xấu xa'

Bạn đang trên hệ thống nào? Tôi đoán là bạn có thể gạch chéo lại thoát nó bằng Linux nfs-kernel-server, nhưng không phải Linux nfs-user-server.
Mikel

Câu trả lời:


3

Dựa trên văn bản này, tôi giả sử bạn đang ở trên Linux?

Nếu một tên xuất chứa khoảng trắng thì nên trích dẫn bằng dấu ngoặc kép. Bạn cũng có thể chỉ định khoảng trắng hoặc ký tự bất thường khác trong tên xuất bằng cách sử dụng dấu gạch chéo ngược theo sau là mã ký tự dưới dạng ba chữ số bát phân.

Có hai triển khai máy chủ NFS khác nhau trên các hệ thống Linux:

  • người dùng NFS
  • hạt nhân NFS

Hãy thử chạy ps -ef | grep nfsdđể xem cái nào bạn có.

Tôi nghĩ rằng người dùng NFS sẽ xuất hiện dưới dạng nfsdhoặc unfsdvà NFS kernel sẽ xuất hiện dưới dạng [nfsd].
(Lưu ý cách một cái có dấu ngoặc vuông, nhưng cái kia thì không.)

Với NFS kernel, bạn nên sử dụng dấu ngoặc kép hoặc thoát bát phân, vd

"/path/to/mount-point" <options>

hoặc là

/path/to/mount\055point <options>

(Tham khảo: nfs-utils-1.1.2, xgettokin support/nfs/xio.c)

Với NFS người dùng, dấu cách không được phép trong tên xuất, nhưng dấu trừ ( -) không cần phải thoát, ví dụ:

/path/to/mount-point <options>

(Tham khảo: nfs-user-server-2.2beta47, filt_getcin auth_init.c)

Nếu bạn không thể đi đến tận cùng của nó, tôi khuyên bạn nên chuyển từ NFS người dùng sang NFS kernel để bạn có thể sử dụng trích dẫn hoặc thoát bát phân.

Trên Debian và Ubuntu:

  • apt-get install kernel-nfs-server

Trên Red Hat và Fedora:

  • yum install nfs-utils

1

Liệu thoát với dấu gạch chéo ngược có hoạt động không?

  • / vol / buildsystem \ -s3c2440
  • / vol / buildsystem \ -tao3530

Vâng, tôi đã thử điều đó. Không, điều này không hoạt động :(
qdot


1

Ok, có thể một cách giải quyết khác. Hơi rắc rối một chút, nhưng tại sao không tạo một thư mục chứa các liên kết tượng trưng đến tất cả các thư mục trước đó (một tập lệnh hoặc một vòng lặp while có thể được sử dụng cho việc này). Nếu tên của các liên kết tượng trưng không chứa bất kỳ dấu gạch ngang nào, bạn sẽ có thể xuất chúng. Bằng cách này, như bạn muốn, bạn sẽ không cần phải sửa đổi tên của các thư mục thực sự của bạn.

Tôi không chắc liệu nó có hoạt động không, nhưng có lẽ đáng để cho nó bắn, phải không?


1

Đây là một chút hack nhưng bạn có thể tạo các liên kết gắn kết vào mỗi thư mục và xuất các đích gắn kết liên kết. Cái gì đó như:

mount -o bind /vol/buildsystem-s3c2440 /vol/buildsystems3c2440
mount -o bind /vol/buildsystem-tao3530 /vol/buildsystemtao3530

Tôi không chắc chắn nếu có hàng tấn gắn kết sẽ làm chậm truy cập tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.