yuu_nkjm blog
2009-11-23(Mon) 編集
[Windows][PowerDirector][動画編集] 自分の好きなWindows Media Encoder 9プロファイルをCyberLink Power Director 8に取り込ませる
下記のディレクトリにprxファイルをおけばよい.
C:\Program Files\CyberLink\PowerDirector\Language\Jpn\Profiles
2011-11-23(Wed) 編集
[sudo][rsync][ssh][backup] rsync + sudo + ssh
お題
- リモートサーバのroot権限がないとアクセス出来ないファイルも含めて,バックアップが取りたい.
- rootでは,リモートサーバにログインできない.一般ユーザでは鍵を使えばログインできる.
…というような状況なので,rsync + sudo + sshをすることを考える.
sudoを使ってリモートのバックアップ対象サーバにおいてrootでrsyncできる様にする
visodo # /etc/sudoersの編集と同義. #Defaults requiretty #ALL ALL=(ALL) ALL #上記,二つをコメントアウト # 追加 bakupuser ALL= NOPASSWD:/usr/bin/rsync
セキュリティを考えるとrsyncを許可するより,コピー先やオプションを書いたrsyncのシェルスクリプトを用意して,それの実行を許可した方が良いかな.
rsyncの実行
su rsync --rsync-path="sudo rsync" -qac hoge@hoge.nkjm.info:/ /mnt/backup/hoge.nkjm.info/
--rsync-pathはリモートで実行するrsyncを具体的に指定するオプション.これによりsudoしてrsyncをすることができる.
aはアーカイブのオプションで,つけとけば間違いない.qは出力を静かにさせる.詳細に振る舞いを確認したいときはvやvvとする.cはチェックサムの確認をする.オプション.
このケースでは,ssh-agentによる認証の転送をしてリモートサーバにログインをした.rsyncで明示的にssh+鍵認証をするなら,-eオプションを使う.
psしてみると,リモート側でrsyncが動いていることが分かる.
2013-11-23(Sat) 編集
[Kawa][Scheme] グローバル定義の変数やローカル定義の変数をこねくりまわす
Schemeの練習.元々はset!じゃなくてdefineでやりたいんだった….
(define a "hoge") (define b 'a) (define set-in-func1! (lambda(x) name: 'set-in-func1! (display x) ;; a (set! x "pyo") ;; x=>"pyo" (display x) ;; pyo )) (trace set-in-func1!) (set-in-func1! b);; (set-in-func1! a) a ;; hoge b ;; a (eval b) ;; b=>a=>"hoge" (define x "hoge") (define y 'x) (define set-in-func2! (lambda(z) name: 'set-in-func2! (display z) ;; x (eval `(set! ,z "pyo")) ;; (eval (set! x "pyo")) (display z) ;; x )) (trace set-in-func2!) (set-in-func2! y) ;; y=>x ===> (set-in-func2! x) x ;; "pyo" y ;; x (define m "hoge") (define n "moge") (define set-in-func3! (lambda(n) name: 'set-in-func3! (display n) ;; "hoge" (eval `(set! n "pyo")) ;; (eval (set! n "pyo")) evalはレキシカルな環境の影響を受けない ;;(eval `(set! ,n "bar")) は,(eval (set! "foo" "bar"))となるのでエラー (display n) ;; "hoge" )) (trace set-in-func3!) (set-in-func3! m) ;; n=>m=>"foo" ===> (set-in-func3! "foo") m ;;hoge n ;;pyo (define x "global") (define y 'x) (define set-with-macro! (lambda () name: 'set-with-macro! (define-macro (macroset! x msg) (let ((t (eval x))) `(set! ,t ,msg))) (define x "local") (define y 'x) (define set-in-func4! (lambda(z) name: 'set-in-func4! (display x) ;; local (macroset! y "change local var") (display x) ;; change local var )) (set-in-func4! y) )) (trace set-with-macro!) (set-with-macro!) x ;; "global" y ;; x