[Synology] DownloadStation 완료시 텔레그램으로 알림 전송

NAS
1. 패키지센터에서 Download Station을 종료 2. ssh를 이용하여 쉘로 진입하여, Root권한을 획득한다. #sudo -i 3. Download Station 재부팅 간 설정파일을 초기화하지 않도록 변경하기 위해, 아래 명령어로 스크립트 파일을 수정 #vi /var/packages/DownloadStation/scripts/start-stop-status 4. "rm ${PACKAGE_DIR}/etc/download/settings.json" 이라고 적혀있는 부분을 찾아서, 앞에 "#"을 붙여 주석처리해주고 저장 #rm ${PACKAGE_DIR}/etc/download/settings.json 5. 설정 변경을 위해 아래 명령어로 설정 파일 수정위 4번에서 경로를 찾아서 변경된 경로로 접근을 해도 됩니다.(업데이트에 따라서 경로가 바뀔수도 있습니다.) #vi /var/packages/DownloadStation/etc/download/settings.json 6. script-torrent-done-enabled, script-torrent-done-filename을 찾아서 아래와 같이 변경 "script-torrent-done-enabled": true, "script-torrent-done-filename": "/volume1/@appstore/DownloadStation/bin/downloadComplete.sh", 7. postgresql의 계정정책 관련 설정을 변경 #vi /etc/postgresql/pg_hba.conf 8. 아래와 같이 되어 있는 부분을 변경 #Before) # TYPE DATABASE USER ADDRESS METHOD local all postgres peer map=pg_root local all all peer #After) # TYPE DATABASE USER ADDRESS METHOD local all postgres trust local all all peer 이걸 안하면, OS계정과 postgresql 계정이…
Read More

[BAT] bat 파일 도메인 NSLOOKUP

Windows
[code bat]@echo off@rem KT  168.126.63.1  168.126.63.2 @rem SK브로드밴드  210.94.0.73  221.139.13.130 @rem 두루넷  210.117.65.1  210.117.65.2 @rem 신비로  202.30.143.11  203.30.143.11 @rem 데이콤  164.124.101.2  203.248.240.31 @rem 드림라인  210.181.1.24  210.181.4.25 @rem 파워콤  164.124.107.9  203.248.252.2 set domain=조회할 도메인set list=168.126.63.1, 210.94.0.73, 210.117.65.1, 202.30.143.11, 164.124.101.2, 210.181.1.24, 164.124.107.9for %%i in (%list%) do (    echo # %%i ################################    nslookup %domain% %%i)pause[/code]
Read More

소스보관

CSharp
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Imaging; using System.Net; using System.Collections; using System.Threading; using System.IO; using MySql.Data.MySqlClient; namespace FnbfoodNaverSmartstoreCapture { public partial class MainForm : Form { private string ConnectDB = "Server=211.233.11.93; Port=3306;Database=fnbfood;Uid=fnbfood;Pwd=@fnbfood!;Charset=utf8;convert zero datetime=True;"; private MySqlCommand command; private MySqlDataReader DBResult; public MainForm() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; this.DoubleBuffered = true; } private void MainForm_Load(object sender, EventArgs e) { DateTimeCheck(); } /// <summary> /// 웹을 실제 실행해야 되는지 체크하도록 함. /// </summary> private void DateTimeCheck() { string Week = System.DateTime.Now.ToString("ddd"); int TimeHM = Convert.ToInt32(System.DateTime.Now.ToString("Hmm")); switch (Week) { case "월": case "화": case "수": case "목": case "금": if (TimeHM > 750 && TimeHM < 1810) { this.Activate(); this.Show(); this.WindowState = FormWindowState.Normal; WebLoad(); } else {…
Read More

[Windows] 시작 프로그램 위치

Windows
윈도우 탐색기에서 아래의 줄을 붙여 넣으시면은 시작 프로그램 폴더로 이동을 합니다. "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" 시작 > 실행에서 다음의 명령어를 넣어도 됩니다. "shell:startup"
Read More

[C#] URL에서 XML 해석

CSharp
XmlDocument doc = new XmlDocument(); doc.Load("URL주소"); XmlNodeList forecastNodes = doc.SelectNodes("rss/channel/item"); foreach (XmlNode node in forecastNodes) { if (node["category"] != null) { if (node["category"].InnerText == "NOTICE") { string parseFormat = "ddd, dd MMM yyyy HH:mm:ss zzz"; DateTimeOffset dto = DateTimeOffset.ParseExact(node["pubDate"].InnerText, parseFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); DateTextbox.Text = dto.ToString("yyyy년 MM월 dd일 (ddd) tt h시 mm분"); break; } } }
Read More

[MySQL] Auto_Increment 값 재정렬 하기

Database
MySQL에서 데이터를 정리하다 보면 auto_increment 값의 충돌로 데이터가 입력이 되지 않는 경우가 있습니다.이럴 경우 간단히 해결할 수 있는 방법이 있는데요. auto_increment 값을 재지정해주면 쉽게 해결됩니다. 단순히 원하는 값으로 초기화하기를 원하는 경우 ALTER TABLE `table_name` AUTO_INCREMENT=XXXXXX(설정한 인덱스번호); 기존의 ROW들을 재정렬 및 셋팅하기를 원하는 경우 ALTER TABLE `table_name` AUTO_INCREMENT=1; SET @CNT = 0; UPDATE `table_name` SET `table_name`.`auto_colmn` = @CNT:=@CNT+1; 만약에 데이터가 있다면은 작동하지 않을수 있습니다. ALTER TABLE `table_name` DROP `auto_colmn`; ALTER TABLE `table_name` ADD `auto_colmn` INT( {many you want} ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`auto_colmn`); 참조 : https://code.i-harness.com/ko/q/8827ea
Read More

[MySQL] Auto_Increment 한계

Database
[MySQL] Auto_Increment 한계 CREATE TABLE을 할때, TYPE다음에 나오는 괄호안 숫자가 BYTE를 나타낸다고 알고 있었는데요,실제로 데이터를 넣어보니 끝도 없이 들어가네요. 왜 이럴까 문서를 찾아보던중 잘 정리된 블로그가 있어서 원인은 잘 알게 되었지요^^ 참고 : http://blackbull.tistory.com/44 위 사이트를 읽어보면, 결국 괄호안 숫자와 상관없이 MySQL INT 최대값까지 발번이 될것으로 판단되네요.그렇다고 INT 최대값인 4,294,967,295까지 테스트를 해볼수도 없고, 그래서 다시한번 구글링을 해봤습니다. http://forums.devshed.com/mysql-help-4/auto-increment-what-happens-at-max-value-334661.html 요길 보니깐 사람들이 잘 정리해주셨네요^^int(11) auto increment으로 설정을 하게 되면, 최대 4,294,967,295까지 발번이 되고 이후에는 error가 난다고 하네요. 최대값이 얼마나 큰 숫자인지 계산을 한 글도 있는데요,10년동안(3650일) 발번을 한다고 볼때, 일별 1,176,703 rows가 발생해야 최대값을 초과할 수 있습니다. 따라서,Transaction이 엄청 빈번한 OLTP환경에서는 SRL타입을 int(11)로 설정하기보다는unsigned BIGINT로 설정하시는게 좀더 나을것으로 판단됩니다. unsigned BIGINT면 최대값이 18,446,744,073,709,551,615이므로 왠만해서는 최대값을 초과하지 않을것으로 사료됩니다. 물론 그게 아니라면 스키마 설계를 다시하심이 낫지 않을까 개인적으로 생각해봅니다.^^아님, 돈이 빵빵하시면 오라클을 써보심도…
Read More

[C#] HTML 에서 Text만 추출

CSharp
/// <summary> /// HTML 에서 Text만 추출한다. /// </summary> /// <param name="Html"></param> /// <returns></returns> public static string StripHtml(string Html) { string output = Html; output = System.Text.RegularExpressions.Regex.Replace(output, "<br>", Environment.NewLine); output = System.Text.RegularExpressions.Regex.Replace(output, "<br/>", Environment.NewLine); output = System.Text.RegularExpressions.Regex.Replace(output, "<br />", Environment.NewLine); //get rid of HTML tags output = System.Text.RegularExpressions.Regex.Replace(output, "<[^>]*>", string.Empty); //get rid of multiple blank lines output = System.Text.RegularExpressions.Regex.Replace(output, @"^\s*$\n", string.Empty, System.Text.RegularExpressions.RegexOptions.Multiline); output = System.Text.RegularExpressions.Regex.Replace(output, " ", " "); return output; }
Read More

ACTS 관련 안내

ACTS/SFCA
ACTS 관련 안내 ACTS 프로그램은 이곳에서 더 이상 배포하지 않고 내용도 작성하지 않습니다. 필요하신분은 아래의 주소로 이동하여서 자세한 정보를 획득 하시기 바랍니다. ACTS 관련 블로그 : http://truds.tistory.com 해당 관련 블로그이며, 최근 클라이언트 파일도 다운로드 가능합니다. 이전에는 주소를 자동이전으로 처리해 드렸지만 2018년 10월 1일부터는 자동으로 넘기지 않도록 처리하였습니다.
Read More

C# serial communication

CSharp
using System; //using OpenNETCF.IO.Ports; using System.IO.Ports; namespace ConsoleApp1 { class Program { static void Main(string[] args) { SerialPort port = new SerialPort("COM43", 115200, Parity.None, 8, StopBits.One); port.Open(); System.Threading.Thread.Sleep(1000); // waiting for Arduino reset for (int i = 0; i < 1000; i++) { Console.WriteLine(port.BytesToRead); // it write on the console only zeros, so no data is received System.Threading.Thread.Sleep(100); } port.Close(); } } }
Read More

[Ubuntu] 원격 IP로 MySQL(MariaDB)에 접속이 되지 않을 때의 해법

Database
원격 IP로 MySQL(MariaDB)에 접속이 되지 않을 때의 해법 ※ Ubuntu 16.04 MariaDb 10.0의 상황과 원격 IP의 주소가 111.222.33.44라고 가정한다. Java에서 다음과 같이 원격의 MySQL에 접속을 시도할때 String url = "jdbc:mysql://111.222.33.44:3306/나의DB명"; Connection refused 에러가 발생하거나 telnet을 이용해서 MySQL이 설치된 IP의 3306포트로 접속시 연결이 되지 않을 때의 해법이다. 네트워크의 연결 상태에따라 다양한 이유가 있을 수 있다. 예를들어 공유기 아래 서버가 물려있을 때 공유기에서 3306에 대한 포트 포워딩이 되어있지 않다면 아래의 방법이 통할수 없을 것이다. 다양한 원인들이 있으나 본 포스트는 3306 포트에 listening이 외부 IP로 설정되지 않고 127.0.0.1로 설정되어 있을 경우에 대한 해법이다. telnet을 이용해서 해당 IP로 3306포트로 접속이 되는지부터 확인해보자. 일단 Windows에서는 기본적으로 telnet을 사용할수 없는 상태로 설정되어 있다. 다음과 같이 하여 telnet을 사용할수 있도록 변경한다. 제어판 - 프로그램 제거 또는 변경 - Windows 기능 켜기/끄기 - 텔넷 클라이언트 체크 MS-DOS 창에서…
Read More

안내사항

일반
안내사항 안녕하세요? 해당 블로그를 방문해 주신분들에 모두 감사드립니다. 제개인적으로 블로그를 1개 운영하고 있습니다. 그곳을 제 나름대로 기술 블로그로 정하고 별 다른 말 없이 기술적인 이야기를 주로 적고 있습니다. 사적인 이야기를 적을곳을 필요하여서 이곳을 운영하게 되었습니다. 제 개인적인 사적인 이야기나 혹은 다른 블로그에서 작성후 보관을 주로 하기 위해서 이곳에 글을 남기게 될것 입니다. 이러한 글을 작성하게 되면은 해당 블로그의 주소를 남기도록 하겠습니다.
Read More
[Ubuntu] SSL 인증서 설치

[Ubuntu] SSL 인증서 설치

Linux
 SSL 발급 및 적용 방법 인증서 발급 프로그램을 서버에 설치해야한다. Let’s Encrypt 는 Ubuntu 16.04 LTS 에서 기본패키지로 추가되었다. 따라서 쉽게 설치할 수 있다. 반면 Ubuntu 14.04 LTS 에서는 기본패키지가 아니기 때문에 몇 줄 더 입력해야 한다. 발급, 설치, 적용 방법은 다음과 같다. 모든 단계는 Linux root 계정으로 진행한다. [code shell] # apt-get install letsencrypt # letsencrypt certonly --webroot --webroot-path=/home/myuser3/www -d myuser3.com -d www.myuser3.com [/code] * 명령어 설명 -d 는 도메인명을 지정하면 된다. 최대 100개의 도메인 이름을 지정할 수 있다. (한 인증서가 서로다른 100개의 도메인 인증을 할 수 있음) 일반적으로는 기본도메인과 www 도메인 두개를 지정한다. -webroot 는 웹인증을 받을 것이라는 것이다. 외부 인증프로그램이 -d 에 지정된 도메인 사이트에 접속한다. -webroot-path 는 웹루트의 경로이다. 보통 index 페이지가 위치하는 경로이다. 인증 프로그램이 이 경로에 임시 랜덤 파일을 생성하고, 외부 인증프로그램이 이 파일을…
Read More