Firefox - чтение URL-адресов открытых вкладок из командной строки

host=`hostname`
now=`date +"%d-%b-%y"`
now=`echo $now| tr '[a-z]' '[A-Z]'`
yest=`TZ=CST+24 date +%d-%b-%y`
yest=`echo $yest| tr '[a-z]' '[A-Z]'`
sub="Jobs-$host-$now-HealthReport"

if [ -s jobs.csv ]
then
awk 'BEGIN{
FS=","
print "<HTML>""<TABLE border=1 width='100%' align='centre' ><tr bgcolor='#000080'><TH><FONT COLOR='#FFFFFF'>HSCR-DBMSJOB HEALTH REPORT  </TH></FONT>"
print "</TABLE>"
print "<HTML>""<TABLE border=1 width='100%' align='centre' bgcolor='#C6C6C6' BORDERCOLOR='#CCFF00' ><tr bgcolor='#5F9EA0'><TH>SUMMARY</TH>"
print "</TABLE>"
print "<HTML><TABLE border=2 width='100%' align='centre' BORDERCOLOR='#330000' ><trbgcolor='#FFFFCC'>"

print "<TH>BROKEN</TH><TH>SCHEMA_USER</TH><TH>JOB_ID</TH><TH>LAST_DATE</TH><TH>LAST_SEC</TH><TH>THIS_DATE</TH>"
print "<TH>THIS_SEC</TH><TH>NEXT_DATE</TH><TH>NEXT_SEC</TH><TH>NAME</TH>"
}


{
    printf "<TR>"
            for(i=1;i<=10;i++){

                      if(i == 1 && $i == "N" || i == 4 && $i == n || i == 4 && $i == y )
                    {
                            printf "<TD bgcolor='#75923C'>%s</TD>", $i
                    }
                    else if(i == 1 && $i == "Y" || i == 4 && $i != n && $i != y)
                    {
                            printf "<TD bgcolor='#FF0000'>%s</TD>", $i
                    }
                    else
{
                            printf "<TD>%s</TD>", $i
}
            }
            print "</TR>"
    }

END{

            print "</TABLE></BODY></HTML>"
    }' y="$yest" n="$now" jobs.csv > jobstatus-$host-$now.html
else
echo "file not found"

fi
7
09.08.2017, 20:51
4 ответа

это работает для Firefox 57+. Вам понадобится lz4 (через pip ). Заголовок файла собирается из длины b'mozLz40\0'. Используйте переменную среды для пути к файлу, если вы хотите использовать его в однострочнике, замените на \nи \tсоответственно и объедините строки.

export opentabs=$(find ~/.mozilla/firefox*/*.default/sessionstore-backups/recovery.jsonlz4);

python3 <<< $'import os, json, lz4.block
f = open(os.environ["opentabs"], "rb")
magic = f.read(8)
jdata = json.loads(lz4.block.decompress(f.read()).decode("utf-8"))
f.close()
for win in jdata["windows"]:
    for tab in win["tabs"]:
        i = int(tab["index"]) - 1
        urls = tab["entries"][i]["url"]
        print(urls)'
10
27.01.2020, 20:16

Источник (Измененный путь к файлу):Получить все открытые вкладки

Этот фрагмент получает URL-адрес текущей вкладки Firefox. Он использует recovery.js[onlz4]в папке вашего профиля. Этот файл обновлен почти мгновенно, однако это не всегда будет правильный URL-адрес.

Получить все открытые вкладки:

python -c '
import io, json, pathlib as p
fpath = next(iter(p.Path("~/.mozilla/firefox").expanduser().glob("*.default/sessionstore-backups/recovery.js*")))
with io.open(fpath, "rb") as fd:
    if fpath.suffix == ".jsonlz4":
        import lz4.block as lz4
        fd.read(8)  # b"mozLz40\0"
        jdata = json.loads(lz4.decompress(fd.read()).decode("utf-8"))
    else:
        jdata = json.load(fd)
    for win in jdata.get("windows"):
        for tab in win.get("tabs"):
            i = tab["index"] - 1
            print(tab["entries"][i]["url"])
'
6
27.01.2020, 20:16

Я рекомендую использовать для этой целиhttps://github.com/balta2ar/brotab:

pip install brotab
brotab install

Также установите веб-расширение:https://addons.mozilla.org/en-US/firefox/addon/brotab/

Перезапустите Firefox, и вы можете использовать brotab listи проанализировать его:

bt list | awk -F'\t' '{
    print "Downloading "$2
    system("curl --silent --output \""$2"\" \""$3"\"")
}'
1
27.01.2020, 20:16

Некоторые из этих ответов ссылаются на каталог «[random chars].default». Начиная с версии 67, у пользователей могут быть профили для разных каналов обновления (, например, выпуск, бета-версия, ночное обновление и т. д. ).

В моей системе Ubuntu 18 этот каталог назывался «[random chars].default -release». У меня все еще был каталог "[...].default", но он был в основном пуст. Имейте это в виду, если вы получите сообщение об ошибке, что «резервные копии хранилища сеансов -» не могут быть найдены.

2
24.03.2020, 16:18

Теги

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