[svn]윈도우 svn 설치

OS 2020. 10. 23. 18:07

●윈도우 서브서번 최신

sourceforge.net/projects/win32svn/files/

 

●윈도우 SVNManager

pyrasis.com/main/SVNSERVEManager

 

●포트

http:// 80
https:// 443
svn:// 3690
svn+ssh:// 22

 

 

 

Posted by 꼬장e
,

무선랜 기능 추가

 

Posted by 꼬장e
,

출처 : http://blog.nekoromancer.kr/2013/12/17/mariadb-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98-%ED%9B%84-mysql-client-library-%EC%97%90%EB%9F%AC/

 

MariaDB로 마이그레이션 후에 다음과 같은 에러 메시지가 발생하는 경우가 있습니다.

mysql_connect(): Headers and client library minor version mismatch.
Database의 Client API Library 버전과 Header 버전이 일치하지 않아 발생하는 문제입니다. DB 자체는 정상적으로 굴러가지만 지속적으로 에러메시지를 뱉어냅니다. 자신의 DB API버전을 확인하려면 커맨드 라인이 다음과 같이 입력합니다.

1
php -i | grep 'Client API'
저같은 경우에는 버전정보가 다음과 같이 출력되었습니다. Client API header version만 다릅니다.

1
2
3
4
Client API version => 5.3.12-MariaDB
Client API library version => 5.3.12-MariaDB
Client API header version => 5.1.69
Client API version => 5.3.12-MariaDB
해결방법은 php mysql 드라이버를 삭제하고 mysqlnd 드라이버를 설치하면 됩니다.

1
2
yum erase php-mysql
yum install php-mysqlnd
드라이버 설치를 마치고 API 버전을 다시 확인하면 mysqldn으로 드라이버가 변경된 것을 확인하실 수 있습니다. 또한 더 이상 에러메세지가 발생하지 않습니다.

Posted by 꼬장e
,

cmd (명령 프롬프트 )

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS 
bcdedit -set TESTSIGNING ON

 

입력후 재시작

 

인텔 드라이버 ( https://downloadcenter.intel.com/ko/download/26092 )를 받은후 압축해제 ( PROWinx64.exe )

 

PRO1000\Winx64\NDIS64\e1d64x64.inf 파일을 수정

 

[ControlFlags] 아래에 3줄 삭제

 

[Intel.NTamd64.6.3.1] 아래 내용중 [Intel.NTamd64.6.3] 아래에 존재 하지 않는게 있으면 복사해서 붙여넣기

 

예)

[Intel.NTamd64.6.3.1]
; DisplayName                   Section              DeviceID
; -----------                   -------              --------
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086

 

[Intel.NTamd64.6.3]
; DisplayName                   Section        DeviceID
; -----------                   -------        --------
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086

 

 

> [Intel.NTamd64.6.3]내용 보면  

"PCI\VEN_8086&DEV_153A" 와 "PCI\VEN_8086&DEV_155A " 사이에

[Intel.NTamd64.6.3.1] 내용의  "PCI\VEN_8086&DEV_153B" 가 없음

 

> 수정하면 

[Intel.NTamd64.6.3] 
; DisplayName                   Section        DeviceID 
; -----------                   -------        -------- 
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A 
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086 

%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B 
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00008086 
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A 
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086

 

다 찾아서 추가해주고 저장후 장치 관리자에서 드라이버 업데이트 ( 경로 PRO1000 ) 해주면됨

 

>완료되면 

CMD 실행후

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS 
bcdedit -set TESTSIGNING OFF

 

재시작

 

참고

https://atsoftware.de/2014/08/install-intel-i218-v-nic-driver-for-windows-server-2012/

Posted by 꼬장e
,

크론탭 설정하면 많이 발생

 

삭제방법

cat /dev/null > /var/spool/mail/해당아이디 ( 계정 )

Posted by 꼬장e
,

[리눅스] Centos wget 설치

OS 2019. 10. 15. 18:28

yum install wget

Posted by 꼬장e
,

[리눅스] php 시간대 설정

OS 2019. 10. 15. 08:32

vi /etc/php.ini

 

date.timezone = Asia/Seoul

Posted by 꼬장e
,

출처 : https://blog.naver.com/ncloud24/221235022510

 

윈도우 서버2016 에서 윈도우즈 업데이트를 수동으로 전환하는 방법은 3가지가 있습니다.
1. Group Policy (그룹 정책)
2. Server Configuration Tool (서버 환경설정 툴)
3. Registry (레지스트리)


1. Group Policy (그룹 정책)

그룹 정책 관리에 들어가기 위해서 서버 관리자 -> tools 메뉴를 클립합니다.


Group Policy Objects(이하 GPO) 를 클릭 후 우클릭해서 새로운 GPO를 만들어 줍니다.

사용자들이 알기 쉬운 이름을 입력하는 것이 좋습니다.

다음과 같이 Configure Automatic Updates를 disable(사용안함)로 만들면 자동으로 업데이트하는 것을 중지할 수 있습니다.



2. 서버 환경 설정 툴
다음은 Sconfig를 이용하여 윈도우즈 업데이트 설정을 수동으로 변경하는 방법입니다.

관리자권한으로 시작 - CMD를 검색하여 명령 프롬프트를 열어줍니다.

sconfig를 친 후 Enter 를 누르면 sconfig가 열립니다.

sconfig이 열렸다면 Windows Update Settings 를 변경해야하므로 5를 입력해줍니다.



5번을 입력했다면 다음과 같은 옵션이 나옵니다.

(A) Automatic – 업데이트를 적용한 후 자동으로 스캔, 다운로드, 설치 재부팅이 가능하도록 설정
(D) DownloadOnly – 업데이트를 설치해야하는 경우 자동으로 관리자를 검색하여 다운로드하고 관리 자에게 알립니다. Windows Server 2016의 기본 설정입니다.
(M) Manual updates – 자동 업데이트를 끕니다. 시스템에서 업데이트를 확인하지 않습니다.

수동으로 변경하기 위해 M을 입력하여 줍니다.

그 후 설정이 완료되면 업데이트 설정이 변경되었다는 말과 함께 sconfig의 첫번째 창으로 돌아갑니다.


3. 레지스트리

다음은 레지스트리를 이용하여 변경하는 방법입니다.
윈도우즈 업데이트 자동 설정을 수동으로 전환하기 위해서는 다음 Powershell 프롬프트 에서 다음 명령어를 입력하면 됩니다.

1
2

#Disable Automatic Windows Updates
Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1

위의 명령어를 입력하게 되면 다음과 같이 레지스트리 키가 "AU"로 바뀌게 됩니다.

다음은 선택 가능한 옵션입니다. 자동 업데이트를 중지하기위해 명령어에서 옵션을 Value-1을 입력한 것입니다.

Value -1: Disable Automatic Updates. (자동 업데이트 중지)
Value -2: Notify before download. (다운로드 전 공지)
Value -3: Automatically download and notify of installation. (자동으로 다운로드 & 설치)
Value -4: Automatically download and schedule installation. Only valid if values exist for ScheduledInstallDay and ScheduledInstallTime. (자동 다운로드 와 스케쥴 설치. ScheduleInstallDay와 tScheduledInstallTime인 경우만 선택 가능)
Value -5: Automatic Updates is required and users can configure it. (자동 설치 완료 후 사용자가 설정 가능)

 

 

 

 

'OS' 카테고리의 다른 글

[리눅스] Centos wget 설치  (0) 2019.10.15
[리눅스] php 시간대 설정  (0) 2019.10.15
[리눅스] crontab 초단위 스케줄링  (0) 2019.10.11
[리눅스] crontab 기본 사용법  (0) 2019.10.11
[리눅스] crontab 사이트 호출  (0) 2019.10.11
Posted by 꼬장e
,

스크립트에서 스케줄링하기

셸 스크립트의 경우 기존 태스크를 루프로 감싸고 안에서 sleep만 걸어주면 된다. 다른 언어를 사용중이라면 각 언어별로 내장된 sleep 함수를 사용하면 된다.
# original.
task;

# 2 seconds interval.
for i in {1..30}; do
task;
sleep 2;
done


그 다음 crontab에 1분 스케줄링을 걸어준다.
# crontab
* * * * * /bin/sh /path/to/script.sh


sleep 시간을 동적으로 설정하려면 sleep 시간을 받을 수 있도록 할 수도 있다.
n=$1
# n seconds interval.
for i in $(seq $((60/$n))); do
task;
sleep $n;
done

# crontab
* * * * * /bin/sh /path/to/script.sh 2


그런데 만약 task 실행 시간이 충분히 짧지 않다면 실질적인 sleep 시간은 task 실행시간 + sleep 시간이 되기 때문에 스케줄링에 오차가 생길 수 있다. 이 경우는 task를 백그라운드로 실행하면된다.
n=$1
# n seconds interval.
for i in $(seq $((60/$n))); do
task &;
sleep $n;
done


Crontab에서 스케줄링하기

crontab 등록시 스크립트 실행 이전에 sleep을 걸어주면 된다. 단, 첫 스케줄잡은 제외한다. 스크립트를 수정하지 않아도 되기 때문에 가장 편하게 사용할 수 있는 방법이다.
# crontab
* * * * * /bin/sh /path/to/script.sh
* * * * * sleep 10; /bin/sh /path/to/script.sh
* * * * * sleep 20; /bin/sh /path/to/script.sh
* * * * * sleep 30; /bin/sh /path/to/script.sh
* * * * * sleep 40; /bin/sh /path/to/script.sh
* * * * * sleep 50; /bin/sh /path/to/script.sh


1분마다 모두 동시에 실행되지만 sleep이 있어 작업이 지연되므로 10초 간격으로 스케줄링된 것처럼 동작한다

 

출처 : https://mingrammer.com/scheduling-cron-job-in-seconds-interval/#crontab에서-스케줄링하기

Posted by 꼬장e
,

1. 크론탭 기본 (crontab basic)

일단 기본이 되는 크론탭 사용법을 한 번 볼까요. 리눅스 쉘에서 다음처럼 입력합니다.
$ crontab -e


그러면 뭔가 편집할 수 있는 곳이 로딩됩니다. 이곳이 바로 크론탭을 설정할 수 있는 장소이죠. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킵시다.

반대로 현재 크론탭에 어떤 내용이 들어있는지 보려면 다음처럼 입력하세요.
$ crontab -l


그러면 cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 됩니다. 그런데 만약(거의 없겠지만) 크론탭을 지우고 싶다면?

리눅스 쉘에 다음처럼 입력합니다.
$ crontab -r


이렇게까지 하면 크론탭의 기본 설정 및 확인, 삭제에 대해 배운 것입니다. 그러면 실제로 크론탭에 크론 하나를 예제로 등록 해봅시다.

다음처럼 crontab -e 입력 후 다음과 같은 내용을 입력합시다. 저장은 vi 처럼 콜론 (:) 입력 후 wq 로 갱신시켜주면 됩니다.
* * * * * ls -al


별이 다섯개나 있습니다. 그리고 뒤에는 명령어가 적혀 있네요. 이게 기본 사용법입니다. 물론 쉘스크립트 뿐만 아니라 리눅스 커맨드도 사용할 수 있습니다.여기서는 쉘스크립트를 사용하는 방법으로 설명하고 있습니다.

별이 다섯개 있는 경우엔 "매분마다 실행" 하는겁니다. 별이 지칭하는 것이 무엇인지 자세히 살펴봅시다. * 그 전에 위에 입력했던 크론잡은 다시 지우시기 바랍니다.

2. 주기 결정
*      *      *      *      *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)


각 별 위치에 따라 주기를 다르게 설정 할 수 있습니다. 순서대로 분-시간-일-월-요일 순입니다. 그리고 괄호 안의 숫자 범위 내로 별 대신 입력 할 수 있습니다.

요일에서 0과 7은 일요일입니다. 1부터 월요일이고 6이 토요일입니다.

3. 주기별 예제

3.1. 매분 실행
# 매분 test.sh 실행
* * * * * /home/script/test.sh


3.2. 특정 시간 실행
# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh


3.3. 반복 실행
# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh


3.4. 범위 실행
# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh


3.5. 간격 실행
# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh


3.6. 조금 복잡하게 실행
# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh

 

? 주기 입력 방법엔 * , - / 을 이용하는 방법이 있습니다. 위에서 보셨듯이 각각의 특수기호가 하는 기능이 다르고 조합을 어떻게 하느냐에 따라 입맛대로 주기를 설정 할 수 있습니다.

4. 크론 사용 팁

4.1. 한 줄에 하나의 명령만 씁시다.
# 잘못된 예
* * * 5 5
/home/script/test.sh

# 잘된 예
* * * 5 5 /home/script/test.sh


4.2. 주석을 달아봅시다.
# 주석 #
#--------------------#
# 이것은 주석입니다. #
#--------------------#


# 을 입력해서 그 뒤로 나오는 모든 문자를 주석 처리할 수 있습니다.

5. 크론 로깅 (cron logging)

크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데, 해당 처리 내역에 대해 로그를 남기고 싶을 때가 있을겁니다. 그럴때 다음처럼 한번 써봅시다.
* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

 

 


위처럼 작성하면 매분마다 test.sh.log 파일이 갱신 되어 작업 내용이 어떻게 처리 되었는지 알 수 있습니다. 만약 2>&1 을 제거하면 쉘스크립트에서 표준 출력 내용만 나옵니다. 2>&1은 이곳에서 확인합시다.

그런데, 이게 너무 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 다음처럼 입력합니다.
* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1


그러면 계속 로그가 누적이 되는 것을 확인 할 수 있을겁니다. 대신 로그가 과도하게 쌓이면 리눅스 퍼포먼스에 영향을 주므로 가끔씩 비워주거나 파일을 새로 만들어주는 센스가 필요합니다.

반대로 로그는 필요 없는 크론을 위해선 다음처럼 입력합니다.
* * * * * /home/script/test.sh > /dev/null 2>&1


6. 크론탭 백업 (crontab backup)

자, 혹시라도 crontab -r 를 쓰거나 실수로 crontab 디렉토리를 날려버려서 기존 크론 내역들이 날아갔을때, 정말 황망할거 같은데 말이죠. 그러니 주기적으로 크론탭을 백업해 둡시다. 백업은 다음처럼 하는 방법이 있습니다.
crontab -l > /home/bak/crontab_bak.txt


크론탭 내용을 txt 파일로 만들어 저장해두는겁니다. 자, 이것도 자동화가 될 수 있을까요?
50 23 * * * crontab -l > /home/bak/crontab_bak.txt

 

출처 : https://jdm.kr/blog/2

Posted by 꼬장e
,