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

関連ページ


トップ «前の日(11-22) 最新 次の日(11-24)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|