Вставьте символы в середине и конце строки с определенной длиной строки

Я предполагаю, что вы используете CentOS 7+ или Ubuntu 15.04+, которые поставляются с systemd. В Systemd есть отличные инструменты для определения того, сколько времени потребовалось вашей системе для загрузки, а также несколько визуализаций, чтобы понять, почему.

Для получения базовых результатов просто запустите systemd-analysis , и вы получите красивую сводку, подобную этой

Startup finished in 853ms (kernel) + 3min 50.610s (initrd) + 10.345s (userspace) = 4min 1.809s

, которая может сказать вам, сколько времени длилась ваша последняя загрузка после запуска systemd. Это не учитывает инициализацию BIOS / оборудования или таймауты GRUB, но должно быть точным для фактического времени загрузки ОС.

Если вы хотите выяснить, почему ОС так долго работает, попробуйте systemd-analysis виноват , который предоставит вам диаграмму услуг от самых продолжительных до самых коротких. например, из моей системы

3min 49.219s systemd-cryptsetup@luks\x2d62611c1c\x2d74ab\x2d4be9\x2d8990\x2d41c0fd863b5a.service
      5.315s plymouth-quit-wait.service
      3.084s systemd-udev-settle.service
      2.275s plymouth-start.service
      2.256s docker.service
      1.819s powertop.service
       778ms firewalld.service
       676ms dev-mapper-fedora\x2droot.device
       621ms abrtd.service
       493ms lvm2-monitor.service

Похоже, что 3 из 4 минут, необходимых для загрузки моего ноутбука, вызваны тем, что у меня зашифрованный диск.

Наконец, вы можете увидеть цепочку событий, которые считаются «критическими» для загрузки системы.На странице руководства критический означает «критичная по времени цепочка модулей». Это потому, что systemd распараллеливает множество сервисов. В нем будут перечислены единицы, которые должны ждать другого модуля, и сколько времени потребовалось для запуска.

The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

graphical.target @10.336s
└─multi-user.target @10.323s
  └─docker.service @4.900s +2.256s
    └─network.target @4.868s
      └─wpa_supplicant.service @4.828s +14ms
        └─dbus.service @3.753s
          └─basic.target @3.749s
            └─sockets.target @3.749s
              └─docker.socket @3.741s +6ms
                └─sysinit.target @3.737s
                  └─systemd-update-utmp.service @3.726s +10ms
                    └─auditd.service @3.713s +9ms
                      └─systemd-tmpfiles-setup.service @3.617s +82ms
                        └─fedora-import-state.service @3.568s +36ms
                          └─local-fs.target @3.560s
                            └─run-user-42.mount @5.753s
                              └─local-fs-pre.target @383ms
                                └─systemd-tmpfiles-setup-dev.service @301ms +80ms
                                  └─kmod-static-nodes.service @268ms +10ms
                                    └─system.slice
                                      └─-.slice

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

0
07.05.2019, 14:01
1 ответ

Попробуйте это:

sed -ne '/^.\{43\}$/s/\t/, /g;/^.\{44\}$/s/\r/./gp' input.file > new.file

или если вы используете mac os:

sed -ne $'/^.\{43\}$/s/\t/, /g;/^.\{44\}$/s/\r/./gp' input.file > new.file

Я добавил пробел после запятой, чтобы соответствовать ожидаемому результату. Вот почему второе совпадение предназначено для 44, а не 43 символов.

0
28.01.2020, 03:42

Теги

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