Проблема сценариев Bash Linux с подстановочным знаком

Ну, во-первых, ядро автоматически выбирает лучшее, обычно это TSC, если он доступен, потому что он хранится на процессоре и очень быстр (RDTSC и чтение EDX:EAX).

Но так было не всегда, в ранние годы, когда системы SMP в основном собирались с несколькими дискретными cpus, было очень важно, чтобы cpus был как можно "равнее" (идеальное совпадение модели, скорости и шага), но даже тогда иногда случалось, что один из них был заметно быстрее другого, поэтому счетчик TSC между тем был "нестабилен", что и послужило причиной позволить изменить его (или отключить его с помощью параметра ядра "notsc"). И даже при таких ограничениях TSC все равно является лучшим источником, но ядро должно с большой осторожностью полагаться только на один вычислительный процессор в многоядерных системах или активно пытаться поддерживать их синхронизацию, а также учитывать такие вещи, как suspend/resume (сбрасывает счетчик) и масштабирование частоты вычислительного процессора (влияет на TSC в некоторых моделях вычислительных процессоров).

Некоторые люди в те ранние времена SMP даже строили системы с cpus различных скоростей (что-то вроде новой архитектуры BIG.little in arm), что создавало большие проблемы в области хронометража.

Что касается способа проверки разрешения у вас clock_getres() и у вас есть пример здесь.

И пара дополнительных ссылок: официальное ядро doc (в этом каталоге есть и другие интересные файлы) и ресинхронизация TSC в хромиках с некоторыми бенчмарками различных часовых источников.

Короче говоря, при смене источника часов не должно быть видимых изменений в пользовательском пространстве, только более медленное gettimeofday().

0
08.04.2015, 12:36
2 ответа

Это цитаты задней галочки. Они говорят оболочку, чтобы запустить вывод команды.

E.G.

`echo ls`

будет запущен LS .

В вашем случае вы попросили Bash запустить файлы SQL. Это, очевидно, не то, что вы собирались, поскольку Bash не может этого сделать, SQL не имеет смысла Bash.

Также даже с этим исправлением сценарий не будет делать то, что вы описываете. Кто-то еще (Джанин) дал ответ, чтобы исправить это, однако они не объясняли, почему ваш сценарий сделал то, что он сделал.

3
28.01.2020, 02:17

- «Векл через кучу файлов [ .sql] и получите их имена« Вы только что делаете:

for f in *.sql
do
    do_whatever_with_file "$f"
done

, если вы просто хотите перечислить файлы:

ls *.sql

Если вы хотите проверить, есть ли *. SQL Файлы, существующие, например:

if  ls *.sql >/dev/null 2>&1
then echo sql files existing
else echo no sql files
fi
2
28.01.2020, 02:17

Теги

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