Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

108건의 글

crontab 사용법 - 실행·관리·권한 설정 정리

리눅스 crontab의 사용법을 정리한 글이다. crontab -e로 작업을 편집하고 -l로 내용을 확인하며, 분·시·일·월·요일 형식으로 아파치 재시작 같은 작업을 예약하는 예제를 소개한다. 마지막으로 /etc/cron.allow와 /etc/cron.deny 파일을 이용한 사용자별 crontab 권한 설정 규칙을 설명한다.

반응형

<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script>(adsbygoogle = window.adsbygoogle || []).push({}); </script>

  1. 실행 및 관리

crontab 파일 에디터

crontab -e

crontab 파일내용 확인

crontab -l

crontab 재시작

/etc/rc.d/init.d/crond restart

crontab 동작 확인

tail /var/log/cron

  1. 설정

30 /usr/local/apache/bin/apachectl restart
: 매시 30분마다 아파치를 재시작 합니다.

30 3 1 10 * /usr/local/apache/bin/apachectl restart
: 10월 1일 3시 30분에 아파치를 재시작 합니다.

45 /3 * 1-5 /usr/local/apache/bin/apachectl restart > dev/console
:월~금요일 매 3시간 45분에 아파치 재시작하고 결과는 콘솔에 출력합니다.

      • 2-4 * /usr/local/apache/bin/apachectl restart
        : 2월~4월까지 매시간 매분에 아파치 재시작을 합니다.
  1. 권한설정

crontab 사용권한 설정을 할 수 있습니다.
: /etc/cron.allow 파일에 허용할 사용자 추가
: /etc/cron.deny 파일에 허용하지 않을 사용자 추가

cron.allow를 먼저 참조합니다. cron.allow에 명시된 사용자는 cron job을 실행할 수 있습니다.
cron.allow에 없는 사용자는 cron.deny에도 없다면 cron job을 실행할 수 있습니다.
cron.allow, cron.deny 두 파일이 존재하지 않으면 슈퍼유저만 cron job을 실행할 수 있습니다. (기본설정)
cron.deny 파일이 존재하고 아무 내용 없이 비어 있다면, 모든 사용자가 cron job을 실행할 수 있습니다.

Windows Server 2016 KMS 인증 방법 (간단·빠른 활성화)

Windows Server 2016을 KMS 방식으로 빠르게 정품 인증하는 방법이다. 명령 프롬프트에서 slmgr /upk, slmgr.vbs /ipk 제품키, slmgr.vbs /skms KMS 서버, slmgr.vbs /ato 명령을 순서대로 실행하고, 데이터센터·표준·임베디드 에디션별 제품 키를 정리했다.

1.打开cmd控制台,按顺序输入以下命令,有报错不要管它。

slmgr /upk

slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG

slmgr.vbs /skms kms.lotro.cc

slmgr.vbs /ato

2.进入电脑属性激活服务器

Windows Server 2016 数据中心

CB7KF-BWN84-R7R2Y-793K2-8XDDG

Windows Server 2016 标准版

WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY

Windows Server 2016 嵌入式版

JCKRF-N37P4-C2D82-9YXRT-4M63B

PHP로 JPG 이미지를 WEBP 형식으로 변환하기 (imagick)

PHP의 imagick 확장을 이용해 JPG·PNG 이미지를 WEBP 형식으로 변환하는 방법이다. GitHub에서 제공하는 확장을 설치하고 변환 예제 코드를 사용한다. 단일 CGI 프로세스로 수만 번 변환해도 메모리가 늘지 않아 안정적이며, 200KB 이하 이미지는 약 0.2초 안에 변환되지만 대용량 파일은 시간이 오래 걸려 실시간 변환에는 부적합하다.

imagemagick支持webp,使用imagick即可,不需编写此扩展 下载地址 https://github.com/godlovesdog/webp 使用

/*
* 将JPEG/PNG 图片内存转为webp
* 纯内存操作
*/
$opts = getopt('f:');
$blob = file_get_contents("/home/lvbenwei/".$opts['f']);
$res = image2webp($blob);
$arr = explode('/',$opts['f']);
file_put_contents("/home/lvbenwei/".$arr[count($arr)-1].".webp",$res);//纯内存操作

稳定性测试

单CGI进程几万次JPEG图片转WEBP操作,消耗内存并未增长,可以认为无内存泄露 JPEG转webp


php 把jpg格式的图片转为webp格式
图片字节数在200KB以内时,图片格式转换耗时基本在0.2s内
图片字节数>200KB时,格式转换耗时不稳定,有时达近10s PNG转WEBP

php 把jpg格式的图片转为webp格式
有的200KB以内的PNG转换webp耗时竟达1s

格式转换性能不尽如人意,不建议进行在线格式转换

Linux/SSH tar 명령어 총정리 - 압축·해제·분할 압축

Linux에서 자주 쓰는 tar 명령어를 파일 형식별로 정리한 글이다. tar, gz, tar.gz, bz2, tar.bz2, Z, tgz, zip, lha, rar 형식별 압축·해제 명령과, 대용량 파일을 지정 크기로 분할 압축하는 split 사용법, 분할 파일을 cat으로 합친 뒤 해제하는 과정, rar 설치 방법까지 설명한다.

关于这个Tar命令,与其说是压缩和解压文件,不如说我们平时都用它来打包文件。这个命令最大的作用应该是在备份网站数据上了,我习惯先Tar打包数据,再用备份VPS wget一下,当然数据库部分就另算了~呵呵,关于网站备份我会另写文章,这里简单和大家分享一下这个Tar命令的参数和用法(以文件格式分类)~

01-.tar格式

  • 解包:tar xvf FileName.tar
  • 打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

02-.gz格式

  • 解压1:gunzip FileName.gz
  • 解压2:gzip -d FileName.gz
  • 压 缩:gzip FileName

03-.tar.gz格式

  • 解压:tar zxvf FileName.tar.gz
  • 压缩:tar zcvf FileName.tar.gz DirName

04-.bz2格式

  • 解压1:bzip2 -d FileName.bz2
  • 解压2:bunzip2 FileName.bz2
  • 压 缩: [*******]$ bzip2 -z FileName

05-.tar.bz2格式

  • 解压:tar jxvf FileName.tar.bz2
  • 压缩:tar jcvf FileName.tar.bz2 DirName

06-.bz格式

  • 解压1:bzip2 -d FileName.bz
  • 解压2:bunzip2 FileName.bz

07-.tar.bz格式

  • 解压:tar jxvf FileName.tar.bz

08-.Z格式

  • 解压:uncompress FileName.Z
  • 压缩:compress FileName

09-.tar.Z格式

  • 解压:tar Zxvf FileName.tar.Z
  • 压缩:tar Zcvf FileName.tar.Z DirName

10-.tgz格式

  • 解压:tar zxvf FileName.tgz

11-.tar.tgz格式

  • 解压:tar zxvf FileName.tar.tgz
  • 压缩:tar zcvf FileName.tar.tgz FileName

12-.zip格式

  • 解压:unzip FileName.zip
  • 压缩:zip FileName.zip DirName

13-.lha格式

  • 解压:lha -e FileName.lha
  • 压缩:lha -a FileName.lha FileName

14-.rar格式

  • 解压:rar x FileName.rar或unrar -e FileName.rar
  • 压缩:rar a FileName.rar FileDir

有关rar请到:http://www.rarsoft.com/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量
指定的目录也行): cp rar_static /usr/bin/rar
15.在linux下分卷压缩

tar cvzpf - vmvps | split -d -b 50m

上面的命令是将vmvps这个文件夹分卷压缩,每卷50m,分卷会被命名为x00,x01,x02

在linux下解压
首先需要合并:
合并的命令是: cat x*>vmvps.tar.gz
然后解压:tar xzvf vmvps.tar.gz

在windows下合并文件
copy /b x* www.rar

jQuery로 스크롤에 따라 이미지 지연 로딩(레이지로드) 구현하기

이미지가 많아 페이지 로딩이 느려질 때, 스크롤을 내리면 화면에 들어오는 이미지만 순서대로 표시되도록 하는 jQuery 레이지로드 예제다. 이미지의 original 속성에 실제 경로를 저장해 두고 scroll 이벤트에서 화면 진입 여부를 판단해 src를 교체한 뒤 fadeIn으로 표시한다. CSS와 HTML 예제도 함께 제공한다.

根据滚动条下拉而延迟加载显示图片特效,通过jquery来实现这个图片延迟加载显示特效,当用户下拉滚动条时才加载图片。

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2-vsdoc2.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
$(function(){
var $winH = $(window).height();
var $img = $("#show img");
var $imgH = parseInt($img.height()/2);
var $srcDef = "/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif";
runing();
$(window).scroll(function(){
runing();
})
function runing(){
$img.each(function(i){
var $src = $img.eq(i).attr("original");
var $scroTop = $img.eq(i).offset();
if($scroTop.top + $imgH >= $(window).scrollTop() && $(window).scrollTop() + $winH >= $scroTop.top + $imgH)
{
if($img.eq(i).attr("src") == $srcDef){
$img.eq(i).hide();
}
$img.eq(i).attr("src",function(){return $src}).fadeIn(300);
}
})
}
})
</script>
*{ border:0;}
a{ display:inline; float:left; margin:55px; background:#ccc; overflow:hidden; font-size:0;}
<div id="show">
<a href="#"><img src="/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif" width="160" height="160" original="http://img181.poco.cn/mypoco/myphoto/20110126/10/5637885820110126103208087.jpg" /></a>

<a href="#"><img src="/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif" width="160" height="160" original="http://img181.poco.cn/mypoco/myphoto/20110126/10/5637885820110126103303012.jpg" /></a>
</div>


Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.