Почему mount.cifs мог смонтировать пустую папку?

Следующий сценарий является намного более чистым способом получить вывод, который Вы хотите.

#!/usr/bin/env bash

(($# == 0)) && {
    echo "Usage: $0 <page_count>"
    exit 1
} >&2

# nTotal = $1 rounded up to a multiple 8
nTotal=$(($1 + 7))
nTotal=$((nTotal - nTotal % 8))
nHalf=$((nTotal / 2))
nQuarter=$((nTotal / 4))

# print page numbers in groups of 4, 2 groups at a time
for ((x=0; x < nQuarter; x+=2)); do
    printf '%du,%du\n%d,%d\n' \
        $((x + 1)) $((nTotal - x)) $((nHalf - x)) $((nHalf + x + 1))
    printf '%du,%du\n%d,%d\n' \
        $((nTotal - (x + 1))) $((x + 2)) \
        $((nHalf + x + 2)) $((nHalf - x - 1))
done

Пример

$ ./imposition8 16
1u,16u
8,9
15u,2u
10,7
3u,14u
6,11
13u,4u
12,5

Я переписал Ваш сценарий, потому что было несколько проблем с оригиналом.

  • Вы использовали не -sh совместимый bash определенный синтаксис, таким образом, я исправил строку хижины для соответствия.

  • Во всей вещи можно выполнить чистая bash. Использование нескольких tr вызовы, внешнее awk, и bc неэффективно. В частности, необходимо знать это bash и даже совместимый POSIX sh может сделать математику внутренне.

0
02.05.2013, 13:22
2 ответа

Наконец я решил проблему. Благодаря Wireshark.

От журналов Wireshark я видел это когда smbclient сделал его задание затем, коллеги обменивались подкомандами GET_DFS_REFERRAL. Но эти сообщения отсутствовали, когда я пытался смонтировать долю с mount.cifs.

Кажется, что сервер использует средства Распределенной файловой системы, таким образом, я пытался добавить поддержку DFS к ядру, и это сделало прием. Теперь я могу отлично перейти, читать и записать в моей смонтированной доле.

На самом деле я думал это smbclient и mount.cifs используемый те же инструменты низкого уровня для соединения с серверами SMB/CIFS, но это не так. Похоже, что Samba может обработать сам DFS без поддержки ядра.

0
28.01.2020, 05:02

smbclient не монтирует долю, "смонтируйте, что-t cifs..." вместо этого делает это. Необходимо быть суперпользователем для монтирования долей. Вы могли попробовать sudo mount -t cifs //server.name/sharename /mount/point -o username=youruser,domain=yourdomain?

0
28.01.2020, 05:02
  • 1
    Если у него не было корневых полномочий mount команда бросила бы ошибку. –  Patrick 02.05.2013, 15:22
  • 2
    Да, я забыл говорить, что я сделал это как корень. –  krokoziabla 02.05.2013, 15:33
  • 3
    Вы могли попробовать команду (как указано выше)? Различия к Вашей команде: "имя пользователя" вместо "пользователя", доменный параметр separated.thanks –  Striker_84 03.05.2013, 14:33
  • 4
    Ну, я попробовал, 'имя пользователя' не помогло. –  krokoziabla 03.05.2013, 17:17

Теги

Похожие вопросы