rsyslog パッケージの omfwd モジュールによる TCP 通信において、サーバ側からの切断があった際に、その後の初回通信に失敗する。クライアント側 /etc/rsyslog.conf の action 設定は下記。
- type="omfwd"
- Protocol="tcp"
その後、次回通信時に下記メッセージを出力。PRIは<43>(syslog.err)。
/* | |
* 外部プロセスが終了したら、それ以降の標準出力・エラー出力を捨てる。 | |
* 参考: FIO07-J. 外部プロセスに IO バッファをブロックさせない - JPCERT/CC | |
* https://www.jpcert.or.jp/java-rules/fio07-j.html | |
*/ | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.PrintStream; | |
class StreamGobbler extends Thread { |
import subprocess | |
import time | |
import datetime | |
for i in range(10000): | |
time.sleep(0.01) | |
command = 'snmptrap -v 2c -c public 172.31.1.11 "" netSnmpExperimental netSnmpExperimental.1 s "%08d" netSnmpExperimental.2 s "%s"' % (i, datetime.datetime.now().time()) | |
subprocess.check_call(command, shell=True) |
import syslog | |
import time | |
import datetime | |
for i in range(100000): | |
time.sleep(0.005) | |
message = '%010d %s' % (i, datetime.datetime.now().time()) | |
syslog.syslog(message) | |
''' |
import requests | |
import os | |
from bs4 import BeautifulSoup | |
RES_PATH = 'result' # 結果出力先パス | |
os.makedirs(RES_PATH, exist_ok=True) | |
root_page = requests.get('https://github.com/froop?tab=repositories') | |
root_soup = BeautifulSoup(root_page.text, 'html.parser') |
<html> | |
<head> | |
<style> | |
input.error { | |
background-color: red; | |
} | |
</style> | |
<script src="jquery.js"></script> | |
<script src="jquery.validate.js"></script> |
/** | |
* CSVテキストを組み立てる。 | |
* <nl> | |
* <li>区切り文字は「,」</li> | |
* <li>文字列は「"」で囲い、数値はそのまま</li> | |
* <li>改行コードはLF</li> | |
* <li>文字列に「"」を含む場合は「""」にエスケープ</li> | |
* </nl> | |
*/ | |
public class CSVBuilder { |
function getParentURL(url) { | |
return url.replace(/[^/]*$/, ""); | |
} | |
var url = location.href; | |
document.write(url + "<br>"); | |
document.write(getParentURL(url) + "<br>"); |
public class FileRename { | |
private final Path srcDir; | |
private final Path destDir; | |
private final Iterable<RenamePattern> namePatterns; | |
private final Iterable<RenamePattern> contentPatterns; | |
private final Charset charset; | |
public FileRename(Path srcDir, Path destDir, | |
Iterable<RenamePattern> namePatterns, Iterable<RenamePattern> contentPatterns) { | |
this(srcDir, destDir, namePatterns, contentPatterns, Charset.defaultCharset()); |
public class TriggerPolling implements Runnable { | |
private final Runnable handler; | |
private final int interval; | |
private final AtomicBoolean triggered = new AtomicBoolean(); | |
private volatile boolean shutdown = false; | |
/** | |
* @param handler trigger()されたら実行される処理 | |
* @param interval ポーリング間隔(ミリ秒) | |
*/ |