Remote pbcopy on OS X systems - BrettTerpstra.com
SSHのポートフォワーディングとlaunchdを利用してpbcopyできるのか。
手順は
Mac側でpbcopy用launchdの.plistファイルを作成。(cf. man launchd.plist)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>localhost.pbcopy</string> <key>ProgramArguments</key> <array> <string>/usr/bin/pbcopy</string> </array> <key>inetdCompatibility</key> <dict> <key>Wait</key> <false/> </dict> <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockServiceName</key> <string>2224</string> <key>SockNodeName</key> <string>127.0.0.1</string> </dict> </dict> </dict> </plist>
launchdに.plistをロード
$ launchctl load ~/Library/LaunchAgents/pbcopy.plist
これでlocalhost:2224に送った文字列がクリップボードにコピーされる。
~/.ssh/configにポートフォワーディングの設定
RemoteForward 2224 127.0.0.1:2224
これで、sshでサーバにログインした状態でlocalhost:2224に文字列を送ると、Mac側のクリップボードに文字列がコピーされる。
サーバ側でpbcopyのシェルスクリプトを作成。文字列を2224ポートに送信すれば良い
#!/bin/sh cat | nc localhost 2224
これで、
[boscono@mac]$ ssh server [boscono@server]$ echo "hello world" | pbcopy
で"hello world"がmacのクリップボードにコピーされることになる。