서버 root 홈디렉토리에 .log_history 디렉토리 생성




.bash_profile 에 아래 내용추가






export PS1="\`echo -en \| \\# \|$(tty)\|\t\| >> $HOME/.log_history/history_$(date '+%y%m%d')




echo -en $(date '+%y%m%d')\|$SSH_CLIENT\| >> $HOME/.log_history/history_$(date '+%y%m%d')






history |tail -n 1 >> $HOME/.log_history/history_$(date '+%y%m%d')




echo '[\u@\h \W]\\$ '\`"










그러면 히스토리 확실하게 남길 수 있음






그다음 /etc/profile 에 






NOW=$(date +%Y-%m-%d-%H:%M)


mkdir -p /root/.log_history/$NOW




TTY=`echo $(tty) | awk -F / '{print $3$4}'`


script -q /root/.log_history/$NOW/$TTY




이거 넣어두면 




/root/.log_history/%TTY 에 그사람(pts0,1등등)이 입력했던 명령어, 그 명령어의 결과값까지 저장됨




근데...script 명령어가 완전 실시간이 아니라 한 10초정도 뒤에 입력되는듯 ? exit 명령어를 넣어주면 전부 저장이 되는데 씨큐어,푸티를 종료하는등의 세션을 그냥 꺼버리면 마지막 10초정도는 저장이 안되는듯

-rw-r--r--  1 root root   2174 Nov 10  2015 install.sh^M


drwxr-xr-x  2 root root   4096 Jan 11 12:56 ^[[01;34mmonitor^[[0m^M


drwxr-xr-x  4 root root   4096 Nov 17 11:42 ^[[01;34mreboot^[[0m^M


-rw-r--r--  1 root root    633 Nov  1 11:13 reboot.sh^M


-rw-r--r--  1 root root    643 Nov 17 11:05 reboot.sh.1^M






위처럼




script 명령어로 파일 저장하고 vi로 열어보면 마지막 ^M 엔터표시 있다.




script 명령어 아니여도 윈도우에서 파일 저장한거 리눅스에서 연다던지 하면 저런 ^M 표시 있을수있다.




저거 지우는 명령어는




perl -p -i -e "s/\r//g" filename

root@localhost:/opt/mysql/scripts# ./mysql_install_db --base-dir=/opt/mysql --datadir=/opt/mysql/data




FATAL ERROR: Could not find ./bin/my_print_defaults




If you compiled from source, you need to run 'make install' to


copy the software into the correct location ready for operation.




If you are using a binary release, you must either be at the top


level of the extracted archive, or pass the --basedir option


pointing to that location.






FATAL ERROR: Could not find ./bin/my_print_defaults


위 에러 처럼 경로를 제대로 못찾고있다.


해결은


vi로 ./mysql_install_db 열어서


 21 basedir="/opt/mysql"

 22 builddir=""

 23 ldata="/opt/mysql/data"



위 라인에 직접 basedir ldata 에 직접 경로 넣어주고


./mysql_install_db


위에처럼 basedir 이나 datadir 옵션 주지말고 그냥 실행하면됨

+ Recent posts