Может ли bash выйти из синхронизации с файловой системой?

Возможно, я не правильно формулирую свой вопрос, но я приложу все усилия, чтобы объяснить симптомы, которые я испытываю. Во-первых, для контекста я использую сервер Ubuntu (без графического интерфейса), версия 12.04.3 LTS (согласно утилите lsb_release). Обычно я делаю всю свою работу в tmux, подключаюсь к серверу через Putty и использую vim для всего редактирования текста.

1116 Теперь о симптомах. Поскольку я использую tmux, у меня обычно всегда открыто несколько окон. В одном из них находится сервер узлов, с которым я играл, и он находится в подкаталоге дома моей учетной записи пользователя (в частности, ~/battleship). Сервер взаимодействует с веб-страницей, которую я также размещаю вне сервера, используя nginx, и весь код веб-сайта находится в /usr/share/nginx/www/bs (я также оставляю отдельное окно открытым для редактирования исходного кода клиента). Происходит следующее: после нескольких часов простоя и незатронутого окна сервера оно перестает синхронизироваться. Я могу запустить ls, посмотреть файлы и открыть их для редактирования (vim server.js). Однако, когда я это делаю, независимо от того, внесу ли я изменения и сохраню ли я или просто мгновенно завершаю работу, при повторном запуске ls я вижу файл .server.js.swp и ни одно из моих изменений (если я их сделал) сохраняются. Если я перехожу из этого каталога, а затем снова в него, он исправляет себя - я могу открыть файл и успешно отредактировать его, не оставляя после себя .swp, когда закрываю его. Я упомянул половину информации о клиентском источнике, потому что заметил, что этого не происходит в папке / www (предположительно, потому что это за пределами домашнего каталога моей учетной записи пользователя).

После этой стены текста мой вопрос таков: кто-нибудь знает , почему это происходит, и как это предотвратить? Я могу только представить, что есть какой-то способ, учитывая, что это не единственный сервер Linux, к которому я подключаюсь через Putty и использую tmux / vim, и все же это единственный случай, когда происходит такое странное поведение. Любая помощь будет оценена.

Примечание: я пометил это с помощью bash, tmux и putty, потому что я предполагаю, что один из них виноват, но я действительно понятия не имею, что.

Обновление: Это вывод cat /proc/mount, запрошенный Жилем (хотя и с моим именем пользователя и цензурой ecryptfs_fnek_sig и ecryptfs_sig, потому что пока я на самом деле не знаю, что эти две вещи, они кажутся связанными с шифрованием, и лучше безопасны, чем сожалеют.

rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=2008532k,nr_inodes=502133,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=807840k,mode=755 0 0
/dev/disk/by-uuid/2da27263-f079-47ba-90ad-66e4c3a53810 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
/home/[username]/.Private /home/[username] ecryptfs rw,relatime,ecryptfs_fnek_sig=[censored],ecryptfs_sig=[censored],ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs 0 0

Обновление 2: Вот выходные данные uname -a:

Linux [server-name] 3.5.0-39-generic #60~precise1-Ubuntu SMP Wed Aug 14 15:38:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Обновление 3: Я завершил проход memtest. Это результат указанного теста . Кажется, что все закончилось без ошибок, поэтому я не уверен, что в конечном итоге это поможет. Вы также можете увидеть некоторые детали оборудования в случае, если это поможет каким-либо образом.

12
задан 7 September 2013 в 04:21

3 ответа

Вы можете попробовать запустить команду sync между вашими командами bash.

sync - flush file system buffers

Я никогда не находил в этом необходимости, но знал по крайней мере одного человека, который вводил его практически как каждую вторую команду! Должно быть, в прошлом сильно сгорел с медленным диском.

Похоже, что в интернете легко обсудить использование команды sync. Вот ссылка на очень короткую ручную запись для sync: http://www.gnu.org/software/coreutils/manual/html_node/sync-invocation.html

[ 113] гарантирует, что данные записываются из памяти на дисковое устройство. Данные могут все еще находиться в кэш-памяти дискового устройства и не записываться на диск, если само дисковое устройство работает медленно или имеет проблему.

Вы работаете на сервере Ubuntu. , , это машина на вашем рабочем столе? Или это в облаке? Или же . , , что-то другое? См. Здесь: https://serverfault.com/questions/534627/what-does-the-sync-command-do медленная синхронизация из памяти на диск, связанная с проблемами жесткого диска, ИЛИ, возможно, с мелкими экземплярами Amazon AWS. ,

0
ответ дан 7 September 2013 в 04:21

FWIW проблема отображается командой ls, а не bash.

Тот факт, что вы видите файл, означает, что он все еще там. Ничто не синхронизировано ни с чем другим, и никакая синхронизация не помешает вам использовать единственную кэшированную копию соответствующих данных файловой системы. синхронизация просто заставит данные фиксироваться в постоянном хранилище, а не изменит ваше представление о них.

Вы используете сеансы VIM? Я не знаю сеанса VIM, никогда не использовал его сам, но я думаю, что tmux может заставить менеджер сеанса VI не понимать, что файл закрыт, и следить за вашими изменениями.

0
ответ дан 7 September 2013 в 04:21

Единственный опыт, который я видел с чем-то подобным, был, когда каталог удалялся и создавался новый. AIX и Solaris имели эту проблему лет назад. Если у вас есть открытый сеанс оболочки в удаленном каталоге, вы можете получить непредсказуемые результаты, которые выглядят как синхронизация файловой системы.

bash1: mkdir test1
bash2: cd test1
bash1: touch test1/testfile
bash1: ls test1
testfile
bash2: ls
testfile
bash1: rm -rf test1
bash2: ls
???(unknown results)???

Зашифрованная файловая система звучит как что-то, что нужно пересмотреть. Вы пробовали в незашифрованной файловой системе?

Извините, я не могу оставлять комментарии. Недостаточно очков.

0
ответ дан 7 September 2013 в 04:21

Другие вопросы по тегам:

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