[스크립트] 배치 파일 작성법 |
출춰:http://syszone.co.kr/bbs/zboard.php?id=windows&page=1&page_num=20&category=&sn=off&ss=on&sc=on&keyword=&prev_no=28&sn1=&divpage=1&select_arrange=headnum&desc=asc |
[스크립트] 배치 파일 작성법 |
출춰:http://syszone.co.kr/bbs/zboard.php?id=windows&page=1&page_num=20&category=&sn=off&ss=on&sc=on&keyword=&prev_no=28&sn1=&divpage=1&select_arrange=headnum&desc=asc |
|
|
실전에 사용한 Unix 에 대한 여러가지 명령어들
너무나도 초보단계이기 때문에 한발짜국씩...냠냠냠
copy |
cp: omitting directory '/ 에러시 이렇게 하면 강제로 할꺼냐고 물어본다. 1)은 ccc 하위에 bbb디렉토리를 포함하여 카피, 2)는 bbb를 포함하지 않는 이하의 디렉토리를 카피 |
TAIL |
[실시간으로 로그보기] [마지막 라인에서 50번째 라인까지 보기] [옵션] |
rsync 사용법(미러링 툴)과 예제 |
> rsync -avz -e ssh www1.yahoo.co.kr:/home/www /home/www rsync는 서버간, 혹은 디렉토리간의 미러링을 구현시 가장 일반적인 툴이라 할 수 있겠다. 여러가지 검토해본결과 rsync+ssh가 이상적으로 판단, 문제의 크론작업시의 자동 인증과정을 클리어 하기로 했다. rsync의 기본 사용법을 모른다면 밑에를 참조 간단한 사용예 rsync -avurz --delete --exclude=*.db --exclude=*.info SRC(원본) DEST(복사될 위치) -a는 archive mode (심볼릭 링크, 속성, 퍼미션, 소유권등 보존). --delete: 원본 디렉토리에 없는 파일은 없앤다. / 가 붙는 것과 안붙을 경우 차이가 난다. SRC경로를 /home/backup라고 해주면 backup폴더가 생성되고 자료들이 backup폴더 안으로 들어가고 DEST경로를 /home/backup/라고 해주면 백업 경로에 바로 저장이 된다. 주의 하기 바란다.(먼소리?) |
적용예 (주)웹호스트 구자열과장 danda@nate.com 님의 ssh, rsync를 이용한 백업방법에 대한 웹호스트 연구문서 문서를 참고, 재구성 하였다.
백업스크립트작성 ※설치 스크립트 명:wwwbk1.sh
## 1.1.1.2(포트가 다른 경우)
테스트(절차숙지)
#remote backup www server 6:00
| |
ssh, rsync를 이용한 백업방법에 대한 웹호스트 연구문서 |
가정 상황
■ 포트및 접속, 데먼에 대한 이해
[1.1.1.1의 백업]
□ cron으로 구성시 백업스크립트작성 백업스크립트작성 |
|
|
|
|
|
|
|
|
|
#!/usr/bin/expect -f
## 1.1.1.1
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.1:/.backup/ /.backup/start1/
expect "password: "
send "비밀번호\n"
log_user 1
interact
## 1.1.1.2(포트가 다른 경우)
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.2#100:/.backup/ /.backup/www2/
expect "password: "
send "비밀번호\n"
log_user 1
interact
#remote backup www server 6:00
00 4 * * 5 root /sbin/e2fsck -p /dev/hdb1
01 4 * * 1 root /backupscripts/wwwbk1.sh
01 4 * * 2 root /backupscripts/wwwbk1.sh
01 4 * * 3 root /backupscripts/wwwbk1.sh
01 4 * * 4 root /backupscripts/wwwbk1.sh
01 4 * * 5 root /backupscripts/wwwbk2.sh
01 4 * * 6 root /backupscripts/wwwbk2.sh
01 4 * * 0 root /backupscripts/wwwbk2.sh
Google Analytics Now More Powerful, Flexible And Intelligent에서 다음을 다운로드
「download snippet instructions」의 링크부분
다운로드한 파일 중 ga.php를webroot폴더에 복사
다운로드한 파일 중php1.snippet를 에디터로 열고, 전체 카피한 후, 자신의 모바일용 레이아웃의 제일 위에 붙여넣기
$GA_ACCOUNT = “ACCOUNT ID GOES HERE”;
복사 부분중, UA-XXXXXXXX-N 를 MO-XXXXXXXX-N 로 바꿔서 「ACCOUNT ID GOES HERE」의 부분에 입력
복사 부분중 $GA_PIXEL = “ga.php”; 을 ”/ga.php” 로 변경
다음으로 php2.snippet 파일을 에디터로 열고 전체 복사 후, </body>의 태그 바로 윗 부분에 붙여넣기
php2.snippet 는 img태그를 출력하고 있으므로 body 태크 바로 위에 붙여야 합니다.
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
<img src=”<?= $googleAnalyticsImageUrl ?>” />
를
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
<img src=”<?php echo $googleAnalyticsImageUrl; ?>” />
로 변경함
이게 문제였던것 같음. PHP버전이 문제였나보다.
이것으로 성공!
(1) JDK 설치
(2) Apache WebServer 설치 : apache_2.2.3-win32-x86-no_ssl.msi
(3) Apache Tomcat 설치 : apache-tomcat-5.5.20.exe
(4) Mod_JK 설치 : mod_jk-apache-2.2.3.so
http://www.uniontransit.com/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.19/
에서 다운로드하여 Apache WebServer가 설치된 디렉토리내의 Modules 디렉토리에 저장
(예)C:/_SERVER/Apache Software Foundation/Apache2.2/modules/mod_jk-apache-2.2.3.so
(5) Apache웹서버와 Tomcat 연동을 위한 설정
A. Tomcat 환경설정파일인 Server.xml 파일을 열고, <Engine ...> </Engine> 내에
다음을 추가하자.
<Engine name="Catalina" defaultHost="localhost">
...
<Listener className="org.apache.jk.config.ApacheConfig" modJk="C:/_SERVER/Apache Software Foundation/Apache2.2/modules/mod_jk-apache-2.2.3.so" />
...
</Engine>
B. Tomcat을 Restart 시키면 conf 디렉토리밑에 다음 디렉토리와 파일이 생성됨을 확인할 수 있다.
C:\_SERVER\Apache Software Foundation\Tomcat 5.5\conf\auto\
C:\_SERVER\Apache Software Foundation\Tomcat 5.5\conf\auto\mod_jk.conf
C:\_SERVER\Apache Software Foundation\Tomcat 5.5\conf\jk\
C. 생성된 mod_jk.conf 파일을 새로 생성된 디렉토리 jk 밑으로 복사한다.
C:\_SERVER\Apache Software Foundation\Tomcat 5.5\conf\jk\mod_jk.conf
D. Apache 환경파일인 httpd.conf의 하단에 다음을 추가한다.
Include "C:/_SERVER/Apache Software Foundation/Tomcat 5.5/conf/jk/mod_jk.conf"
E. 도스명령문창에서 다음과 같이 환경파일을 체크한다.
C:\_SERVER\Apache Software Foundation\Apache2.2\bin\httpd.exe -t
성공이라고 뜨면 Apache WebServer를 (재)구동시켜서 아래 URL을 접속하여 잘 동작되는지
JSP 샘플 프로그램을 돌려 본다.
その他 | grep "hhh" f1 | 特定の文字列hhhを含む行を検索しその行を表示する。> f2でファイルになり、>> f2で追加。例:sed_grep.sh |
sed -e "s/jjj/jjk/g" f1 > f2 | ファイル f1の中の文字列jjjをjjkに変えてファイルf2を作る。sed -e "s/jjj/jjk/g" f1 > temp | mv temp f1で同じファイルになる。jjkの代わりにshell変数(X=jjkとしておく)なら"s/jjj/$X/g"とできるようだ。例:sed_grep.sh | |
tail -f XXX | XXXファイルの最後の数行を表示します。-f(最後に追加される文字をリアルタイムに表示) | |
fs lq | (lxplus) disk quotaを表示してくれる。(2006.10.5 naitou<---ATLAS Getting an Account) | |
ssh-keygen -t rsa | ~/.ssh/id_rsa.pubと~ /.ssh/id_rsaにSSH public/private keysをペア生成する。passphraseを入れ忘れないこと。SSH key使用時に要求される。'-t rsa1' optionで作ったら~/.ssh/identity.pubと~/.ssh/identityに出来る。SSH1が標準ならssh -2 が必要かも。X window使用時:ssh -X(CERNのroot使うときはssh -Y)で入るとDISPLAYが自動的にクライアント側でセットされる。 | |
setenv LANG C | 文字化けが出たら試す。export LANG=C in bash?? | |
top | show the CPU status | |
echo $SHELL | 現在のシェルを調べる。csh, bashで変えられる。bash,zshではecho $SHELL(大文字)とする。 | |
ar tv libc.a | List functions in libc.a (v for full inf, t for print), ar=archive | |
Xウインドウ | xinitまたはstartxで始める。>twm -f .twmrc &でwindow managerを起動すると画面を動かせて便利。 | |
grep xxx filename | 文字列xxxを含む行を探す。 例 grep a.dat src/* | |
find . -name test.c -ls | filename test.cを下のdirectoryで探す。find . -name "*.html" -print | |
kterm & | open the k-term window | |
jobs | list current procedures | |
kill %2 | kill the process [2] | |
which C | コマンドCのパスを表示する。whatis、whereis | |
history | show the previous events | |
alias ll 'ls -l' | コマンド ls -l のエイリアス(別名)ll をつくる。unaliasで消す。 | |
du -k | ファイルなどの大きさをKByte単位で表示する。dfは残りspace? | |
tar -cvf A.tar XXX | XXXをA.tarに圧縮する。tvf=内容リスト, -xvfで展開する。 | |
tar -zxvf A.tar.gz | zip圧縮されたarchiveed file A.tar.gzを解凍・展開する。tar zxvf g4tut07-package.tar.gz | |
directory操作 | cd | home directoryヘ戻る。cd=change directory。 |
cd XXX | directory XXXに飛ぶ。cd $homeはホームdirectoryへ。 | |
cd ../.. | 2つ上のdirectoryに行く。応用はcd ../../XXXXXなど。 | |
cd - | ひとつ前のdirectoryへ戻る。 | |
pwd | present working directoryを示す。 | |
mkdir XXX | 新しいdirectory XXXをつくる。 | |
cp -r A/ B | directory AをBにコピーする。-rはrecursive。 | |
rm -rf XXX | 中身も一括してdirectory XXXを消す。 (f:聞き返さない) | |
directoryや ファイルの リスト |
ls | ファイル名をリストアップする。 |
ls -ltr | ファイルの全情報リストを表示。-tは変更時間順、-rは逆順,ls -ltrが時間順で便利 | |
ls -F | directoryには/をつけてリストする。 | |
ls -a | .ではじまるファイルもリストする。 | |
ls *.f | .fで終わるファイルのもリストする。*はワイルド文字。 | |
ファイル操作 | mv A B | ファイルの名前をAからBに変える。応用:mv f1 f2 f3 dir1/ |
cp A B | ファイルAをBにコピーする。 | |
rm A | ファイルAを消す。rm -r directory, rm -rf directory (f:聞き返さない) | |
less A | ファイルAのぺージ表示。viと似た操作。他にcat -n, more。 | |
cat A B > C | AとBを足してCをつくる。cat A >> BはAをBにappendする。 | |
diff -c A B | ファイルAとBを比較し違いを出力する。 | |
chmod a+r A | ファイルAをallがreadできるモードに変更する。
u,g,a=user,group,all;+,-=add,del;r,w,x=read,write,exe, chmod -R とするとそのdirectoryの下すべてに実行する。 |
|
ln -s OLD NEW | ファイルOLDにsymbolic linkをNEWで張る。 | |
source A | ファイルAを実行する。例 source .cshrc | |
gzip -cd XX.gz | 圧縮されたXX.gzファイルを解凍する。 | |
ファイル転送 | ftp xxx.kek.jp | ふつうのファイル転送につかう。 |
scp | 例 scp -r atlas.icepp.s.u-tokyo.ac.jp:"directoryの名前" ./
例 time scp -rc blowfish "atlas.icepp.s.u-tokyo.ac.jp:/lxatlsv1/data01/-----/bg/qq*.ntpl" ./ scpは、シンボリックリンクを見つけるとその先の本体もコピーする。コピーしたファイルの日付は今のもの。blowfishは早くするため(by 佐々木節) |
|
rsync | 例 rsync -avz -e ssh kondo@atlas.cern.ch:/home/kondo/xxxx .
rsyncは、シンボリックリンクはリンクのみコピー。コピーしたファイルの日付はもとのまま。rsync -avzの最後のzオプションは送るときに圧縮する。 http://www.infoscience.co.jp/technical/rsync/resources.htmlからrsyncを持ってくる。 |
|
エディター | vi A | ファイルAをviでeditする。ZZ=save, :q!=quit:→vi表 |
emacs A, mule A | ファイルAをemacsでeditする。cntl-x,cntl-cでquit.cntl-x,cntl-sでsave. cntl-Oで日本語。 | |
less A | Aの内容を見る。最後ページにはG(大文字)で飛ぶ。cntl_b前ページ, cntl_f、後ページに移動。検索あり/xx(順方向) ?xx(逆)。 | |
プリントする | lpr -P40-4d-cor A | ファイルAをプリンター40-4d-corに出力する。 |
lpq | プリンターのqueueをみる。 | |
lprm 451 | print queueのprintjob#451をキャンセルする。 | |
more /etc/printcap | 繋がっているプリンターをリストする。 | |
lpstat | status of printers | |
環境変数 | printenv | 環境変数を表示する。 |
setenv XXX yyy | 環境変数 XXX を yyy にセットする。 | |
PATH | コマンドのパス順路。トップから順に探す。 | |
PATHの追加 | setenv /cern/pro/bin:$PATH でpawが使えるようになる。 | |
DISPLAY | setenv DISPLAY A:0.0表示をターミナルAにセットする。 |
起動と終了 | vi +N file.name | N行目にカーソルを移動して起動する。 |
vi +/XXX file.name | file中の検索文字列XXXを含む行にカーソルを移動して起動する。 | |
:q! | quit(saveなし)。 | |
ZZ | saveして終わる。 | |
:w | saveする。:wq(save and quit) :w file(fileでsave。:wq file):wq! file(overwriteのとき) | |
vi -r | ネットワークが切れたときの復活(viがmail 出してくれる) | |
日本語表示文字化け | :set encoding=japanとすればいい。ホームディレクトリに.vimrcというファイルを作成して、set encording=japan(コロンなし)と書いておけば自動的になる。 | |
2つのモード | i | 直前でインサートモードに移る。自由に書き込みする。 |
a | 直後でインサートモードに移る。自由に書き込みする。 | |
[esc] | コマンドモードに戻る。 | |
I, A | I(行の最初に挿入)、A(行の最後に挿入) | |
行の操作 | G | 最後のラインに飛ぶ。 |
1G | トップラインに戻る。 | |
nG | n行目のラインに飛ぶ。 | |
dd | 1行を消してbufferに入れる。n行分消す時はndd。 | |
P | bufferに入ってる行を直前の行に挿入する。 | |
J | 次の行と結合する。 | |
u | 直前のコマンド操作を取り消して元に戻る。 | |
文字操作 | x | 今の文字を消す。 |
r | 今の文字を次にタイプする文字で置き換える。 | |
D | 今の文字を含んで行末まで消してbufferに入れる。 | |
X | 直前の1文字を消す。 | |
行内操作 | $ | 行の最後の文字に飛ぶ。 |
0 | 行の最初の文字に飛ぶ。 | |
検索・置換・削除 | /XXXXX | 文字列XXXXX(returnまで)を下向方向で探す。 |
/[returmn] | 前回と同じ文字列を再度下向方向で探す。 | |
?XXXXX | 文字列XXXXX(returnまで)を上向方向で探す。 | |
:%s/old/new/gc | 文字列AAAをBBBに置き換える。%は文全体(1,$)と同じ。(n,m)でもよい。%がなければ1行内のみ。gは行内全てでgなければ最初の項のみ。gcのcは許可願いか。例 :.,.+3s/old/new/g :95,120s/old/new/g | |
ma then :'a,.d | 最初の行をmaでマークしておき、最後の今の行(.)までを一括消去しbufferに入れる。 |
PHP 날짜 함수 정리 ( Write By Yaku)
오늘로부터 5일 후
echo date("Y-m-d",strtotime("+5 day"));
다음은 오늘로부터 3일 전이 되겠습니다.
echo date("Y-m-d",strtotime("-3 day"));
오늘로부터 6주 전
$calyoil = 5 - date("w"); //현재 요일에서 금요일을 구하기 위한 가감
$needday = strtotime("-6 week"); // 6주전
$needday = date("Y-m-d" , strtotime("$calyoil days",$needday));
echo $needday;
윤년
if(29==date('t',mktime(0,0,0,2,1,$year))
echo "윤년";
else echo "윤년아님";
--mktime(시,분,초,월,일,년도)--
그 달의 마지막 날짜 가지고 오기
$lastday = date('t',mktime(0,0,1,$month,1,$year));
금주의 시작일 구하기
$now=date("w");
$m=$now-1;
$start=date("Y-n-d",strtotime("-$m day"));
JS 날짜 정리 ..
Month ( 0 ~ 11까지 정의 된다 ) 현재월을 표시하려면 month -1 하여라 ..
날짜 객체 생성 var today = new Date( 년 , 월 , 일 ) ;
날짜 년 가지고 오기 today.getYear();
날짜 월 가지고 오기 today.getMonth(); ( 현재월 가지고 올경우 +1 )
날짜 일 가지고 오기 today.getDate(); (day 가 아니 getDate 이다)
날짜 월 짜리수 맞추기 위한 if 문 = parseInt(월) < 10 ? “-“ + parseInt(월) : parseInt(월);
Mysql 날짜 함수
select date_sub(now(), interval 5 day); [출처] PHP 날짜 함수 정리 ( Write By Yaku) |작성자 야쿠
5일후..
select date_add(now(), interval 5 day);
5일전...