Другие ответы маскируют фиксированное количество символов с самого начала, а суффикс открытого текста различается по длине. Альтернативой было бы оставить фиксированное количество символов в открытом тексте и изменить длину замаскированной части. Я не знаю, какой из них более полезен, но вот другой выбор:
#!/bin/bash
mask() {
local n=3 # number of chars to leave
local a="${1:0:${#1}-n}" # take all but the last n chars
local b="${1:${#1}-n}" # take the final n chars
printf "%s%s\n" "${a//?/*}" "$b" # substitute a with asterisks
}
mask abcde
mask abcdefghijkl
Это печатает **cde
и *********jkl
.
Если хотите, вы также можете изменить n
для коротких строк, чтобы убедиться, что большая часть строки маскируется. Например. это гарантирует, что по крайней мере три символа будут замаскированы даже для коротких строк. (, поэтомуabcde
-> ***de
иabc
->***
):
mask() {
local n=3
[[ ${#1} -le 5 ]] && n=$(( ${#1} - 3 ))
local a="${1:0:${#1}-n}"
local b="${1:${#1}-n}"
printf "%s%s\n" "${a//?/*}" "$b"
}
Похоже, у вас два монитора?
Один для DISPLAY=:1
, другой для DISPLAY=:2
, работает на rfbports 5901 и 5902.
Вы можете попробовать подключиться к 5902 вместо 5901, чтобы посмотреть, что там.
(проверка на/etc/systemd/system/vncserver@:2.service
)
РЕДАКТИРОВАТЬ:
проверить состояние блоков:systemctl status vncserver@:1.service
systemctl status vncserver@:2.service
Обычно следует проверять:
/etc/cron.daily/
/etc/cron.hourly/
Проверить
crontab -e
как обычный пользователь, root и как системный пользователь vnc.
Дополнительно проверьте каталог, содержит ли он какой-либо файл
/etc/rc.d/
Проверьте этот файл, содержит ли он какую-либо запись, которая начинается с системы:
/etc/rc.d/rc.local
Проверьте единицы измерения здесь:
/etc/systemd/system/
Имейте в виду, что если у вас запущен сеанс vnc, то обязательно будут запущены две копии каждого основного процесса.