ນີ້ແມ່ນ faucet ຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS emulator ອອນໄລນ໌.
ໂຄງການ:
NAME
faucet - ເປັນ fixture ສໍາລັບທໍ່ເຄືອຂ່າຍ BSD
ເຄືອຄ່າຍ 4.2
ສະຫຼຸບສັງລວມ
ກauອກນ້ ຳ port (--ໃນ|--ອອກ|--err|--fd n)+ [--ຄັ້ງດຽວ] [-- verbose] [--ງຽບ] [--unix]
[--ເຈົ້າພາບຕ່າງປະເທດ ສິ່ງເສບຕິດ] [-- ຕ່າງປະເທດ port] [--localhost ສິ່ງເສບຕິດ] [--serial] [--daemon]
[--ປິດເຄື່ອງ (r|w) ] [--pidfile ຊື່ເອກະສານ] [--noreuseaddr] [--backlog n]
[-[i][o][e][#3[,4[,5...]]][v][1][q][u][d][s]] [-p ທ່າເຮືອຕ່າງປະເທດ] [-h ເຈົ້າພາບຕ່າງປະເທດ] [-H
ທ້ອງຖິ່ນ-ເຈົ້າພາບ] ຄໍາສັ່ງ ໂຕ້ຖຽງ
ລາຍລະອຽດ
ກauອກນ້ ຳ ຄວາມພະຍາຍາມທີ່ຈະສະຫນອງການເຮັດວຽກຂອງທໍ່ຜ່ານເຄືອຂ່າຍ. ມັນປະຕິບັດຕົວເປັນ
ເຊີບເວີສິ້ນສຸດການເຊື່ອມຕໍ່ເຊີບເວີ-ລູກຄ້າ. ເມື່ອໃຊ້ກັບ ທໍ່(1) ມັນສາມາດເຮັດວຽກເປັນ
ທົດແທນທີ່
tar -cf - . | rsh ອື່ນໆ "cd destdir; tar -xf -"
ກauອກນ້ ຳ ແລະ ທໍ່ ມີປະໂຫຍດໂດຍສະເພາະໃນເວລາທີ່ທ່ານບໍ່ມີການເຂົ້າເຖິງງ່າຍທີ່ບໍ່ມີການໂຕ້ຕອບ
ບັນຊີປາຍທາງ (ເຊັ່ນບັນຊີຮາກທີ່ .rhosts ເປັນຄວາມຄິດທີ່ບໍ່ດີ).
ກauອກນ້ ຳ ສ້າງເຕົ້າຮັບ BSD, ຜູກມັດມັນກັບ port ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ, ແລະ
ຟັງການເຊື່ອມຕໍ່.
ທຸກໆຄັ້ງ ກauອກນ້ ຳ ໄດ້ຮັບການເຊື່ອມຕໍ່ມັນ exec(2) ສ ຄໍາສັ່ງ ແລະມັນ ໂຕ້ຖຽງ ກັບ stdin, stdout,
stderr, ແລະ/ຫຼື ຕົວອະທິບາຍໄຟລ໌ທີ່ມັກຖືກປ່ຽນເສັ້ນທາງຕາມ --ໃນ --ອອກ --err
--fd n ທຸງ. ກauອກນ້ ຳ ຍັງປິດອັດຕະໂນມັດເຄິ່ງທີ່ບໍ່ໄດ້ໃຊ້ຂອງການເຊື່ອມຕໍ່ຖ້າ
ພຽງແຕ່ --ໃນ ຖືກກໍານົດຫຼືພຽງແຕ່ --ອອກ ແລະ / ຫຼື --err ຖືກກໍານົດ. ເບິ່ງ --ປິດເຄື່ອງ
ທາງເລືອກສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
OPTIONS
ຖ້າ --ຄັ້ງດຽວ ທຸງແມ່ນໄດ້ລະບຸໄວ້, ກauອກນ້ ຳ ຈະ exec(2) ໄດ້ ຄໍາສັ່ງ ແທນທີ່ fork(2) ແລະ
exec(2)ing. --ຄັ້ງດຽວ ຫມາຍຄວາມວ່າທໍ່ເຄືອຂ່າຍແມ່ນດີພຽງແຕ່ຫນຶ່ງການສັກຢາ.
ໄດ້ -- verbose ທຸງລະບຸວ່າ ກauອກນ້ ຳ ຄວນພິມຂໍ້ມູນກ່ຽວກັບການເຊື່ອມຕໍ່ hosts.
ຂໍ້ມູນນີ້ລວມເຖິງທີ່ຢູ່ຂອງແມ່ຂ່າຍຕົວເລກ, ຊື່ເຈົ້າພາບ, ແລະຕົວເລກພອດຕ່າງປະເທດ.
ໄດ້ --ງຽບ ທຸງລະບຸວ່າ ກauອກນ້ ຳ ບໍ່ຄວນພິມຂໍ້ມູນດັ່ງກ່າວ. --ງຽບ ເປັນ
Default
ໄດ້ --unix ທຸງລະບຸວ່າ port ບໍ່ແມ່ນໝາຍເລກພອດອິນເຕີເນັດ ຫຼືຊື່ບໍລິການ,
ແຕ່ແທນທີ່ຈະເປັນຊື່ໄຟລ໌ສໍາລັບຊັອກເກັດໂດເມນ UNIX.
ໄດ້ --ເຈົ້າພາບຕ່າງປະເທດ ທາງເລືອກລະບຸວ່າ faucet ຄວນປະຕິເສດການເຊື່ອມຕໍ່ທັງຫມົດທີ່ບໍ່ໄດ້
ມາຈາກ ເຈົ້າພາບ ເຄື່ອງ. ເຊັ່ນດຽວກັນ -- ຕ່າງປະເທດ ກໍານົດວ່າ faucet ຄວນປະຕິເສດ
ການເຊື່ອມຕໍ່ທັງຫມົດທີ່ບໍ່ໄດ້ຜູກມັດຢູ່ໃນເຄື່ອງທ້ອງຖິ່ນຂອງພວກເຂົາກັບ port ການໂຕ້ຖຽງ. ຂ້າງເທິງ
ສອງທາງເລືອກອະນຸຍາດໃຫ້ເປັນຮູບແບບທີ່ບໍ່ດີຂອງການກວດສອບໄດ້. ໃຫ້ສັງເກດວ່າໃນລະບົບ UNIX ພຽງແຕ່ສາມາດຮາກໄດ້
ຜູກມັດຊ່ອງສຽບໃສ່ກັບໝາຍເລກຜອດຢູ່ລຸ່ມ 1024.
ກະລຸນາ ຢ່າຫລອກລວງຄິດວ່ານີ້ເຮັດໃຫ້ faucet ປອດໄພ. ມີວິທີການຫຼອກລວງ
ຕົວເລກ IP ທີ່ເປັນທີ່ຮູ້ຈັກສໍາລັບປີ (ແຕ່ພຽງແຕ່ເຜີຍແຜ່ເມື່ອບໍ່ດົນມານີ້). ຂ້າພະເຈົ້າຄິດວ່າ
ວິທີການນີ້ແມ່ນປອດໄພຈາກການ spoofs DNS, ແຕ່ທ່ານອາດຈະມີ nospoof on in
/etc/host.conf ຢ່າງໃດກໍ່ຕາມ.
--localhost ລະບຸວ່າເຕົ້າຮັບຟັງຄວນຖືກຜູກມັດກັບອິນເຕີເນັດສະເພາະ
ທີ່ຢູ່ໃນເຈົ້າພາບນີ້. ອັນນີ້ມີປະໂຫຍດສະເພາະກັບເຈົ້າພາບທີ່ມີເບີອິນເຕີເນັດຫຼາຍອັນ.
--daemon ກໍານົດວ່າ faucet ຄວນ disassociation ຈາກ terminal ຄວບຄຸມຫນຶ່ງຄັ້ງ
ມັນໄດ້ເລີ່ມຟັງຢູ່ໃນເຕົ້າຮັບ. ນີ້ແມ່ນເຮັດໄດ້ໂດຍໃຊ້ setsid() system call. ຖ້າ
ທ່ານບໍ່ມີ setsid ໃນລະບົບຂອງທ່ານ, ມັນໃຊ້ມາດຕະຖານ `` ປິດຕົວອະທິບາຍໄຟລ໌ທັງຫມົດ,
ioctl TIOCNOTTY, fork() ແລະລໍາດັບການອອກຂອງພໍ່ແມ່.
--ປິດເຄື່ອງ ຖືກນໍາໃຊ້ເພື່ອປ່ຽນເຕົ້າຮັບສອງທິດທາງ (ປົກກະຕິ) ໃຫ້ເປັນ uni-directional ຫນຶ່ງ
ຖ້າມີ 'r', ຫຼັງຈາກນັ້ນ ກauອກນ້ ຳ ຈະປິດການເຊື່ອມຕໍ່ເຄິ່ງຫນຶ່ງເພື່ອເຮັດໃຫ້ມັນເປັນການອ່ານເທົ່ານັ້ນ
ເຕົ້າຮັບ. ຖ້າພວກເຮົາພະຍາຍາມຂຽນ, ມັນຈະລົ້ມເຫລວ. ຖ້າການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກພະຍາຍາມອ່ານ, ມັນ
ຈະຮັບຮູ້ເຕົ້າຮັບເປັນປິດ. ຖ້າມີ 'w' ແທນ, ຫຼັງຈາກນັ້ນ ກauອກນ້ ຳ ຈະປິດ
ອີກເຄິ່ງຫນຶ່ງຂອງການເຊື່ອມຕໍ່ເພື່ອເຮັດໃຫ້ມັນເປັນເຕົ້າຮັບການຂຽນເທົ່ານັ້ນ. ຖ້າພວກເຮົາພະຍາຍາມອ່ານ, ພວກເຮົາ
ຈະຮັບຮູ້ເຕົ້າຮັບເປັນປິດ. ຖ້າການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກພະຍາຍາມຂຽນ, ມັນຈະ
ລົ້ມເຫລວ. ພຶດຕິກໍາໃນຕອນຕົ້ນແມ່ນເພື່ອປ່ອຍໃຫ້ທັງສອງເຄິ່ງເປີດ, ຢ່າງໃດກໍຕາມການປິດເຄິ່ງຫນຶ່ງຂອງ
ການເຊື່ອມຕໍ່ແມ່ນເຮັດໄດ້ອັດຕະໂນມັດໂດຍການປະສົມສະເພາະໃດຫນຶ່ງຂອງ --ໃນ, --ອອກ, ແລະ --err
ທຸງ. ເພື່ອສະກັດກັ້ນພຶດຕິກໍາອັດຕະໂນມັດຂອງພວກເຂົາທ່ານສາມາດນໍາໃຊ້ (ຕາມລໍາດັບ) --fd 0, --fd 1,
ແລະ --fd 2.
--ປິດເຄື່ອງ ອາດຈະບໍ່ຖືກນໍາໃຊ້ກັບເຄື່ອງແມ່ຂ່າຍອິນເຕີເນັດບາງຢ່າງ (ເຊັ່ນ: httpds ທີ່ແນ່ນອນ) ເພາະວ່າ
ພວກເຂົາເຈົ້າຕີຄວາມຫມາຍການປິດຫນຶ່ງເຄິ່ງຫນຶ່ງຂອງການເຊື່ອມຕໍ່ເປັນການປິດທັງຫມົດ
ການເຊື່ອມຕໍ່. ຄໍາເຕືອນນີ້ໃຊ້ກັບ --ໃນ, --ອອກ, ແລະ --err.
--serial ເຮັດໃຫ້ faucet ລໍຖ້າລູກຫນຶ່ງສໍາເລັດກ່ອນທີ່ຈະຍອມຮັບຕື່ມອີກ
ການເຊື່ອມຕໍ່. Serialization ແມ່ນຮູບແບບທີ່ໂຫດຮ້າຍຫຼາຍຂອງການຈັດການພາກສ່ວນທີ່ສໍາຄັນ.
--pidfile ຊື່ເອກະສານ ຄໍາສັ່ງ ກauອກນ້ ຳ ເພື່ອຂຽນ ID ຂະບວນການຂອງມັນເຂົ້າໄປໃນ ຊື່ເອກະສານ. ນີ້ແມ່ນເປັນປະໂຫຍດ
ໃນເວລາທີ່ faucet ແມ່ນສ່ວນຫນຶ່ງຂອງລະບົບຂະຫນາດໃຫຍ່ແລະຂະບວນການຄວບຄຸມອາດຈະຕ້ອງການທີ່ຈະຂ້າໄດ້
ກauອກນ້ ຳ. --pidfile ປະຕິບັດຫນ້າຢ່າງຖືກຕ້ອງໃນເວລາທີ່ການນໍາໃຊ້ --daemon ທາງເລືອກ.
ໂດຍຕົວຢ່າງ, ກauອກນ້ ຳ ປະຕິບັດເປັນ
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR...)
ເຊິ່ງປ້ອງກັນບັນຫາ ``ທີ່ຢູ່ທີ່ໃຊ້ຢູ່'' ທີ່ `` plagued '' netpipes ລຸ້ນ 4.0 ແລະ
ກ່ອນ ໜ້າ ນີ້. --noreuseaddr ບອກ faucet ໃຫ້ຂ້າມການໂທລະບົບນັ້ນ, ແລະກັບຄືນໄປກ່ອນ 4.1
ພຶດຕິກຳ. ໂດຍບໍ່ມີການໂທນີ້, ເຕົ້າຮັບແມ່ນບໍ່ມີສະເຫມີສໍາລັບການນໍາໃຊ້ຄືນໃຫມ່ທັນທີທັນໃດ
faucet ອອກ.
--backlog n ອະນຸຍາດໃຫ້ທ່ານເພື່ອລະບຸຕົວກໍານົດການທີ່ສອງເພື່ອ ຟັງ(2) ລະບົບການໂທ. ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນ 5.
SHORT ດອກໄມ້
ເພື່ອຫຼຸດຜ່ອນຄວາມຕ້ອງການການພິມສໍາລັບການໂຕ້ຖຽງ (ແລະການເຄົາລົບກັບອາຍຸສູງສຸດ
ປະເພນີຂອງ UNIX cryptotaxonomy) ຂ້າພະເຈົ້າໄດ້ເພີ່ມບາງຮູບແບບສັ້ນຂອງທຸງ. ນີ້ແມ່ນ ກ
ຕາຕະລາງການຕິດຕໍ່:
┌──────┬──────────────┐
│ສັ້ນ │ ຍາວ │
│ i │ in │
│ o │ ອອກ │
│ e │ err │
│ #n │ fdn │
│ v │ ຄຳເວົ້າ │
│ 1 │ ຄັ້ງຫນຶ່ງ │
│ q │ ງຽບ │
│ u │ Unix │
│ d │ daemon │
│ s │ serial │
│ p │ ທ່າເຮືອຕ່າງປະເທດ │
│ h │ ເຈົ້າພາບຕ່າງປະເທດ │
│ H │ localhost │
└───────┴──────────────┘
ຕົວຢ່າງ, ຄໍາສັ່ງຕໍ່ໄປນີ້
ຕົວຢ່າງ $ faucet 3000 --out --verbose --once --foreignhost client echo blah
ສາມາດຂຽນໄດ້
ຕົວຢ່າງ $ faucet 3000 -ov1h client echo blah
ໄດ້ -p, -h, ແລະ -H ທຸງໃຊ້ການໂຕ້ແຍ້ງ, ແຕ່ທຸງອາດຖືກຈັດເປັນກຸ່ມໜຶ່ງໃນການໂຕ້ແຍ້ງ.
ຫຼັງຈາກນັ້ນ, ພວກເຂົາເຈົ້າ grab ການໂຕ້ຖຽງທີ່ພວກເຂົາຕ້ອງການຈາກເສັ້ນຄໍາສັ່ງໃນຄໍາສັ່ງຂອງທຸງ
ປາກົດ
ຕົວຢ່າງ$ faucet 3000 -hpHov1 client 2999 example-le2 echo blah
ໃນຂະນະທີ່ແຕ່ລະຄົນ --fd ທຸງ ຄໍາ ຮຽກ ຮ້ອງ ໃຫ້ ມີ ການ ອະ ທິ ບາຍ ບຸກ ຄົນ, ໄດ້ -# ທຸງລັກສະນະສາມາດ
ເອົາຕົວອະທິບາຍຫຼາຍອັນ. ຕໍ່ໄປນີ້ແມ່ນທຽບເທົ່າ:
ຕົວຢ່າງ $ faucet 3000 --fd 0 --fd 1 --verbose --once echo blah
ຕົວຢ່າງ $ faucet 3000 -#0,1v --once echo blah
ຕົວຢ່າງ $ faucet 3000 -v1#0,1 echo blah
ຕົວຢ່າງ $ faucet 3000 -#0,1v1 echo blah
ໃຫ້ສັງເກດວ່າທ່ານຕ້ອງເອົາໃຈໃສ່ໃນເວລານໍາໃຊ້ -# ທຸງລັກສະນະແລະ -1 ລັກສະນະ
ທຸງໃນການໂຕ້ຖຽງດຽວກັນ. ນອກຈາກນີ້, ຈື່ພິເສດ ປິດເຄື່ອງ(2) ຄວາມຫມາຍຂອງ -ໃນ ແລະ
- ອອກ.
ຕົວຢ່າງ
ອັນນີ້ສ້າງຊ່ອງສຽບ TCP-IP ໃນເຄື່ອງທ້ອງຖິ່ນທີ່ຜູກມັດກັບພອດ 3000.
ຕົວຢ່າງ $ faucet 3000 --out --verbose tar -cf - .
ທຸກໆຄັ້ງທີ່ບາງຂະບວນການ (ຈາກເຄື່ອງຈັກໃດໆ) ພະຍາຍາມເຊື່ອມຕໍ່ກັບພອດ 3000 ກ່ຽວກັບເລື່ອງນີ້
ເຄື່ອງ ກauອກນ້ ຳ program will fork(2) ຂະບວນການແລະເດັກຈະ exec(2) ມີ
tar -cf - .
ໄດ້ --ອອກ ທາງເລືອກຫມາຍຄວາມວ່າຜົນຜະລິດຂອງຂະບວນການເດັກຈະຖືກໂອນເຂົ້າໄປໃນ
ເຕົ້າຮັບໃຫມ່ດຶງມາໂດຍ ຍອມຮັບ(2) ໂທ. -- verbose ຫມາຍຄວາມວ່າ faucet ຈະພິມ
ຂໍ້ມູນກ່ຽວກັບການເຊື່ອມຕໍ່ໃຫມ່ແຕ່ລະຄົນ.
ອັນນີ້ສ້າງຊັອກເກັດໂດເມນ UNIX ໃນໄດເລກະທໍລີປະຈຸບັນ
ຕົວຢ່າງ$ faucet u-socket --out --err --once --unix csh -c
"dd if=angio.pgm | funky.perl.script"
ໄດ້ --ອອກ --err ທາງເລືອກຫມາຍຄວາມວ່າ stdout ແລະ stderr ຈະຖືກໂອນຢູ່ໃນເດັກ
ຂະບວນການ. ທ --ຄັ້ງດຽວ ທາງເລືອກຫມາຍຄວາມວ່າ faucet ຈະບໍ່ fork(2), ແຕ່ exec(2) ໄດ້
process ດັ່ງນັ້ນພຽງແຕ່ຂະບວນການທໍາອິດສາມາດເຊື່ອມຕໍ່ກັບ u-socket ກ່ອນທີ່ຈະ faucet ໄດ້
ກາຍເປັນບໍ່ສາມາດໃຊ້ໄດ້.
ຕົວຢ່າງນີ້ຟັງຢູ່ໃນເຕົ້າຮັບຈົນກ່ວາການເຊື່ອມຕໍ່ທໍາອິດມາ. ຫຼັງຈາກນັ້ນ, ມັນ spawns
ສໍາເນົາ bidirectional ທີ່ຄ້າຍຄືກັບ hose -slave.
faucet 3000 -1v --fd 3 sh -c' cat <&3 & cat >&3 ; ຖົງຕີນ 3'
ໃຊ້ faucet ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net