This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
fuss:tor [2023/03/03 03:47] – [Load-Balancing Multiple Tor Instances via HAProxy] office | fuss:tor [2024/03/30 16:31] (current) – [Monitoring tor Instances using Expect] office | ||
---|---|---|---|
Line 296: | Line 296: | ||
< | < | ||
########################################################################### | ########################################################################### | ||
- | ## Copyright (C) Wizardry and Steamworks | + | ## Copyright (C) Wizardry and Steamworks |
########################################################################### | ########################################################################### | ||
Line 315: | Line 315: | ||
</ | </ | ||
that will restart tor in case a circuit is not built within two minutes (60 seconds standard monit check time and times two for one more retry). | that will restart tor in case a circuit is not built within two minutes (60 seconds standard monit check time and times two for one more retry). | ||
+ | |||
+ | ====== Monitoring tor Instances using Expect ====== | ||
+ | |||
+ | A more versatile variation of the [[/ | ||
+ | |||
+ | < | ||
+ | # | ||
+ | ########################################################################### | ||
+ | ## Copyright (C) Wizardry and Steamworks 2024 - License: MIT ## | ||
+ | ########################################################################### | ||
+ | # This is an " | ||
+ | # circuit and sets the return status depending on whether it has or not. # | ||
+ | # # | ||
+ | # In other words, iff. the script returns 0, then tor has an established | ||
+ | # circuit; otherwise no circuit has been established. | ||
+ | # # | ||
+ | # Requirements: | ||
+ | # * expect (TCL program) | ||
+ | # * tor must expose a control port and must have a control password | ||
+ | # # | ||
+ | # In order to generate a control password, issue: tor --hash-password PWD # | ||
+ | # where PWD is the desired control port password. After that, amend the # | ||
+ | # tor configuration file to set the control port address, port and pass: # | ||
+ | # # | ||
+ | # ControlPort 0.0.0.0: | ||
+ | # HashedControlPassword 16: | ||
+ | # # | ||
+ | # Running: ./ | ||
+ | # where: | ||
+ | # * ADDRESS is the tor listening control address, | ||
+ | # * PORT is the tor listening control port, # | ||
+ | # * PASSWORD is the plaintext control password | ||
+ | # # | ||
+ | # after which the return status can be checked on the shell with: # | ||
+ | # echo $? # | ||
+ | ########################################################################### | ||
+ | |||
+ | set address [lindex $argv 0]; | ||
+ | set port [lindex $argv 1]; | ||
+ | set password [lindex $argv 2]; | ||
+ | |||
+ | set timeout 5 | ||
+ | spawn telnet $address $port | ||
+ | |||
+ | send " | ||
+ | expect "250 OK\r\n" | ||
+ | send " | ||
+ | expect { | ||
+ | timeout { | ||
+ | exit 1 | ||
+ | } | ||
+ | -ex " | ||
+ | } | ||
+ | |||
+ | </ | ||