Я люблю корректируемую горизонтальную опцию прокрутки, т.е. предварительно ожидаю слева/справа клавишу со стрелкой с числом и less
прокрутит то число столбцов с тех пор, работы лучше всего с опцией строк прерывания -S
.
less
переключатели командной строки чтений от $LESS
переменная на запуске, вот мои предпочтительные переключатели:
$ echo $LESS
-JMQRSi
-J
добавьте столбец состояния слева, столбцы меток с поисковыми хитами.-M
больше подробной строки состояния.-Q
никакие звонки.-R
не преобразовывайте необработанный вход, позволяет escape-последовательностям интерпретироваться.-S
отключите обертывание строки.-i
нечувствительный к регистру поиск. В этой точке похоже на исчерпание всех категорических источников для ответа на этот вопрос. Я сказал бы, что Ваш лучший выбор теперь будет состоять в том, чтобы попытаться воспроизвести проблему. Этот подход не собирается когда-либо говорить Вам наверняка, что произошло, но он проверит, есть ли у Вас все еще хорошие аппаратные средства (который более важен, чем ПОЧЕМУ так или иначе). Я выполнил полный тест памяти и тест диска как минимум.
Вот хороший сценарий тестирования, который не только тестирует Вашу память, но также и Ваши аппаратные средства доступ DMA (который так же вероятен быть проблемой): http://people.redhat.com/dledford/memtest.shtml
Я определенно также проверил бы Ваш жесткий диск на наличие ошибок; даже видео и звуковое оборудование могло использовать тест только, чтобы быть уверенным.
После того, как вы сообщили о получении выходных данных, таких как
total nodes=1
и
This node=0
, распечатанных 4 раза, я сделал вывод, что вы пытаетесь сделать это: mpirun -np 4 script-name.sh
. Это происходит потому, что mpirun запускает 4 копии сценария оболочки, который не понимает семантику связи MPI.
Если вы можете каким-то образом получить запуск mpirun на скрипте, то помните (1) сценарий выполняется в среде локального «головного» узла, а не удаленного, (2) сценарий должен exec
к вашей программе в качестве последнего и последнего вдоха, и (3) когда программа запускается, она находится в среде, возможно, на другом узле - возможно, не имея доступа к файлам, которые у вас были на голове.
Сценарий должен выглядеть следующим образом:
PROG="$1"; shift;
OPT="$2"; shift
for FILE in "$@"
do
echo "Processing ${FILE}..."
./makeInp.sh ${FILE} ${FILE} >INP/${FILE}.inp
done
exec $PROG $OPT "$@"
В PROG
необходимо индексировать ARGV
в соответствии с текущим узлом/потоком. (Проверьте, не превышено ли значение argc
, или будет получено нарушение указателя NULL.) Я не думаю, что есть другой/лучший способ.
Если перейти по следующей ссылке на странице документации: http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-pam-timestamp-remove.html , можно найти ссылку на утилиту pam_timestamp_check.
Утилита pam _ timestamp _ check
проверяет действительность файла, и возвращаемое значение может быть проверено.
Подробнее см. также man pam_timestamp_check
.
В моей системе (Linux Mint) я также обнаружил, что pam_timestamp_check всегда возвращает код выхода 7 - временная метка недействительна. Использование strace pam_timestamp_check
для отладки процесса возвращает код выхода 2 - двоичный файл не является корнем setuid. После выполнения двоичного setuid с помощью chmod u + s/usr/bin/strace
я смог проследить процесс:
lambert # strace pam_timestamp_check root
.
.
lstat("/var/run/sudo/lambert/9:root", {st_mode=S_IFREG|0600, st_size=57, ...}) = 0
access("/var/run/utmpx", F_OK) = -1 ENOENT (No such file or directory)
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/var/run/utmpx", F_OK) = -1 ENOENT (No such file or directory)
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
exit_group(7) = ?
+++ exited with 7 +++
На этом выходе я вижу, что /var/run/utmp
проверен и не может быть найден.
Поиск в моей файловой системе показывает, что файл utmp
находится в /run/utmp
вместо /var/run/utmp
. После создания файла с помощью:
touch /var/run/utmp
chmod 664 /var/run/utmp
chown root:utmp /var/run/utmp
я смог начать новую сессию sudo (с нового терминала):
lambert $ sudo su
lambert # ls -l /var/run/utmp
-rw-rw-r-- 1 root utmp 384 mei 12 21:59 /var/run/utmp
#logout
lambert $ pam_timestamp_check root
lambert $ echo $?
0
-121--133405- Когда происходит сбой Linux, он происходит тяжело и редко оставляет за собой полезное ядро ядра, которое дает вам какую-либо помощь. Для такой системы есть несколько вещей, которые вы должны сделать:
Увеличить выход системного журнала. Ваша система использует rsyslogd, что еще лучше. В конечном счете у вас есть правило, например:
*. */var/log/debug
Убедитесь, что модуль ядра включен в rsyslogd. Я видел, как некоторые установки комментируют это. Это
$ modLoad imklog
Убедитесь, что вы вращаете этот файл каждый день. Необходимо сохранить только 2 поворота. В/etc/logrotate.d/syslog
/var/log/debug
{
компресс
ежедневно
повернуть 2
sharedscripts
постсменить друг друга
/ bin/kill -HUP 'cat/var/run/syslogd.pid 2 >/dev/null '2 >/dev/null | | true
endscript
}
Я также хочу включить функцию mark
для вывода каждые 5 минут, но это более полезно в сети, когда вы не выполняете другой мониторинг.
У меня есть сценарий, который я создал, чтобы захватить таблицу ps. Он бежит каждую минуту через крон. Это отлично позволяет определить, какие процессы имеют утечки памяти и тому подобное. Для этого используется более или менее команда:
/bin/ps -A --sort tty, comm, pid -ww -o pgrp: 8, tty: 7, pid, c, pmem: 5, rss: 8, sz: 8, size: 8 = TSIZE, vsz: 8, nlwp, lstart, args
У меня есть канал внутри perl-скрипта, который удаляет вывод «мертвого веса», такой как оболочки пользователя и потоки ядра. Комментарий, если заинтересован в полном сценарии. Файлы могут вырасти до 12 МБ в день, но ежедневное сжатие уменьшает это до нескольких сотен КБ.
Я считаю использование пакета sysstat
необходимым. Вот как часто настраивается мой (/etc/cron.d/sysstat
)
*/10 * * * * root/usr/lib64/sa/sa1 10 60
58 23 * * * корень rm -f/var/lib/sa/sa $ (дата +% d --date = завтра)
Сбор системных данных каждые 10 секунд в течение 10 минут. Не стесняйтесь снижать это на сильно загруженной системе. Также помните, что это занимает много места на диске . Чтобы предотвратить повреждение файла sar, завтрашний файл sar с прошлого месяца удаляется незадолго до полуночи. (Однако если месяц заканчивается на 30 день, то 31 день прошлого месяца все равно останется. пожать плечами )
Поместите эти три вещи в вашу систему, и если вам снова не повезет, в вашем распоряжении будет МНОГО данных. Возможно, некоторые из них могут быть полезны.