Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ホスティングにおける fuse の利用
Search
harasou
March 22, 2019
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ホスティングにおける fuse の利用
harasou
March 22, 2019
More Decks by harasou
See All by harasou
エボルバビジネスサポート勉強会
harasou
0
57
第二回ホスティング事業部TechMTG / Hosting TechMTG No2
harasou
0
86
HosCon Summer 2016 @福岡
harasou
1
240
200万 Webサイトを支える ロリポップ!と mruby
harasou
7
4.4k
ホスティングを支える mruby
harasou
2
2.8k
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
My Coaching Mixtape
mlcsv
0
280
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
690
Designing for humans not robots
tammielis
254
26k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Product Roadmaps are Hard
iamctodd
55
12k
A designer walks into a library…
pauljervisheath
211
24k
Statistics for Hackers
jakevdp
799
230k
Darren the Foodie - Storyboard
khoart
PRO
3
3.7k
Transcript
ϨΨγʔγεςϜΛࢧ͑Δٕज़ ݪޱफޛ(.01FQBCP *OD )PTUJOH$BTVBM5BMLT ϗεςΟϯάʹ͓͚ΔGVTFͷར༻
࣍ wϩϦϙοϓʂͷհ wγεςϜߏͷఀ wGVTFCJOEFYͷհ
ΠϯϑϥΤϯδχΞ ݪޱफޛ!IBSBTPV ϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓ ΠϯϑϥνʔϜʢ࠽ʣ IUUQTIBSBTPVKQ
ϩϦϙοϓʂͷ͝հ
ϩϦϙοϓʂͷྺ࢙Πϯϑϥฤ wੜɻ͘͞Β͞Μͷઐ༻αʔόΛར༻ɻ શϩʔϧʢXFC NBJM ECʣΛʹࡌͤͨߏɻ ࠷ऴతʹ͙Β͍ w(.0ͷσʔληϯλʔɻϩʔϧ͝ͱʹઐ༻αʔόΛཱͯΔ ߏʹมߋɻϦόʔεϓϩΩγͷಋೖ͜ͷλΠϛϯά w8PSEQSFTTͷେنվ͟Μʢݖݶෆඋˍ'PMMPX4ZNMJOLTʣ wNPE@QIQಋೖ
wϦόʔεϓϩΩγΛBQBDIFˠOHJOYʹɻIUUQରԠ wແྉ44-ಋೖʢOHY@NSVCZʣ
ϩϦϙοϓʂͷߏ wߏஙɿDPCCMFSQVQQFUʹΑΔߏங wࢹɿOBHJPTNPOJUʹΑΔࢹ wߏɿ wΧελϚʔ%#ͱ࿈ܞ͢ΔQFSMͰ࡞͞Εͨ"1*܈ wϩʔυόϥϯαˠϦόʔεϓϩΩγˠ8&#αʔόͷ̏ஈߏ w8&#αʔόɿ w"QBDIFΛ༻ wϢʔβ͕IUBDDFTTΛར༻͍ͯ͠ΔͨΊOHJOYͳͲͷΓ͕͑ ͍͠ɻMJUFTQFFEʁ
͜ͷߏɺ ؒ΄ͱΜͲมΘ͍ͬͯͳ͍ʜ
มԽେࣄ
ͳΊΒ͔ͳγεςϜ
ͳΊΒ͔ͳγεςϜͱ ग़యɿIUUQTTQFBLFSEFDLDPNNBUTVNPUP@SOVNCFSIPTDPOOBNFSBLBE
ʮαʔόͷഁյͱ࠶ߏஙʯ
ͳΊγεͷҰา αʔό্ʹ͔͠ͳ͍σʔλͱ͔ ͋ͬͨΒɺ·͍ͣΑͶʁ
ͳΊγεͷҰา w·ͣʮ"QBDIFͷWIPTUΛ%#Խʯ͠Α͏ w೦ͳ͕Βɺݱঢ়ͷNPE@NSVCZͰແཧ w͍Ζ͍Ζ͋ΔNPE@WIPTUYYYͱ͑ɺ͍͚ͦ͏Ͱ͋Δ wͰɺ΄ͱΜͲϝϯς͞Εͯͳ͍͠ɺ͓͠ΖΈ͕ͳ͍
Ͱɺ࡞Γ·ͨ͠ɻ GVTFCJOEFY
GVTFCJOEFYͷએ
GVTFCJOEFYͷಛ wϢʔβۭؒͰϑΝΠϧγεςϜΛ࣮ՄೳͳMJCGVTFΛ͔ͭͬͯɺಠࣗ ͷϑΝΠϧγεςϜΛ࡞ w࣮ߦϑΝΠϧΛɺಠࣗϑΝΠϧγεςϜʢGVTFCJOEFYEʣܦ༝Ͱ PQFOSFBEʢྫ͑DBUʣ͢ΔͱɺରͷϑΝΠϧΛFYFDWFͨ͠ ݁Ռ͕ฦΔ # cat /var/lib/bindex/now Thu
Mar 21 20:02:01 UTC 2019 # # cat /var/lib/bindex/now Thu Mar 21 20:02:07 UTC 2019
GVTFCJOEFY४උ # ls -l /opt/bindex/ /var/lib/bindex/ /opt/bindex/: total 4 -rw-r--r--
1 root root 18 Mar 21 19:52 now /var/lib/bindex/: total 0 # # bindexd /opt/bindex/ /var/lib/bindex/ # # ls -l /opt/bindex/ /var/lib/bindex/ /opt/bindex/: total 4 -rw-r--r-- 1 root root 18 Mar 21 19:52 now /var/lib/bindex/: total 4 -rw-r--r-- 1 root root 18 Mar 21 19:52 now wCJOENPVOUͷ༷ʹ ʮϚϯτݩʢ/opt/bindexʣʯͱ ʮϚϯτઌʢ/var/lib/bindexʣʯΛ ༻ҙ͠CJOEFYEΛ࣮ߦ wϚϯτઌʢ/var/lib/bindexʣʹ Ϛϯτݩͱಉ͡ϑΝΠϧ͕ݟ͑Δ
GVTFCJOEFY࣮ߦྫ # cat /opt/bindex/now #!/bin/bash date # # cat /var/lib/bindex/now
#!/bin/bash date wϚϯτݩʢ/opt/bindexʣʹ͋Δ ϑΝΠϧɺϚϯτઌʢ/var/lib/ bindexʣͰಉ༷͡ʹݟ͑Δ wϚϯτݩʢ/opt/bindexʣͷϑΝΠ ϧ͕ʮ࣮ߦϑΝΠϧʯͩͬͨ߹ɺ ϚϯτઌͰͦͷϑΝΠϧΛPQFO SFBEʢDBUʣ͢Δͱɺ ࣮ߦϑΝΠϧΛFYFDWFͨ݁͠Ռʢඪ ४ग़ྗɾඪ४Τϥʔग़ྗʣ͕ฦΔ # chmod +x /opt/bindex/now # # cat /var/lib/bindex/now Thu Mar 21 20:02:01 UTC 2019 # # cat /var/lib/bindex/now Thu Mar 21 20:02:07 UTC 2019
GVTFCJOEFYఆར༻γʔϯ ϛυϧΣΞʹҙࣝͤ͞ͳ͍ܗͰɺઃఆϑΝΠϧͳͲΛಈతͳʹ มߋͰ͖Δɻ wBQBDIFͷઃఆϑΝΠϧ wIPTUT w44-ূ໌ॻ wSTZOEDPOG wFUD
GVTFCJOEFY࣮ PQFOTZTUFNDBMM int bindex_open(const char *path, struct fuse_file_info *fi) {
: if (should_execute(&buf)) { : if ((fd = mkonetimefd()) == -1) { return -errno; } if ((pid = fork()) < 0) { return -errno; } /* child */ if (pid == 0) { dup2(fd, 1); dup2(fd, 2); argv[0] = (char *)real_path; argv[1] = NULL; execve(real_path, argv, environ); ࣮ߦϑΝΠϧ͔ఆ ςϯϙϥϦϑΝΠϧΛ࡞ ɻʢ࡞ͱಉ࣌ʹ VOMJOLʣ ࢠϓϩηεΛੜͯ͠ɺ ඪ४ग़ྗɾඪ४Τϥʔग़ ྗΛςϯϙϥϦϑΝΠϧ ʹ͚Δ ࣮ߦϑΝΠϧΛ࣮ߦͯ͠ ͋ͱɺPQFOͨ͠ϓϩη ε͕ɺςϯϙϥϦϑΝΠ ϧͷGEܦ༝ͰSFBE ʢCJOEFY@SFBEʣ
ศརͦ͏Ͱ͢ͶΑʂʁ
GVTFCJOEFYͰ ϨΨγʔγεςϜΛ ͳΊΒ͔ʹͯ͠ߦ͖·͠ΐ͏ʂ
ͱɺ͍͍͍ͨͱ͜ΖͰ͕͢ɺ
GVTFCJOEFYͷμϝμϝͳͱ͜Ζ wJOPUJGZʹରԠ͍ͯ͠ͳ͍ͨΊɺ ʮมߋΛݕͯ͠ϛυϧΣΞΛSFMPBEʯͷΑ͏ͳ͜ͱ͕ ɹͰ͖ͳ͍ wʮผʹDPOTVMUFNQMBUFͰΑ͘ͳ͍ʁʯʮ࠷ѱDSPOͰ͍͍͠ʯ ɹˠͦͷͱ͓Γ
͜ͷͨΊɺ͍ಓࡧத
Ҏ্
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ