rsync�ō����o�b�N�A�b�v���s�����߂́u--link-dest�v�I�v�V�����FCommand Technica

rsync�̓I�v�V��������g����΁A�����o�b�N�A�b�v���ȒP�ɍs���܂��B����͑O���舵��Ȃ��������e���܂߁Arsync�㋉�҂ɐi�ނ��߂Ɋo���Ă��������u--link-dest�v�I�v�V�����𒆐S�ɏЉ�܂��B

» 2008�N04��25�� 10��10�� ���J
[�O�����CITmedia]

�@�O��́Arsync�ɂ��񂷂��{�I�Ȏ����ɂ‚��Đ������܂����B����͑O���舵��Ȃ��������e���܂߁Arsync�㋉�҂ɐi�ނ��߂Ɋo���Ă��������u--link-dest�v�I�v�V�����𒆐S�ɏЉ�����Ǝv���܂��B�Ȃ��A�{�e�ŃT���v���Ƃ��Ď����Ă���f�B���N�g������A�J�E���g���͑O��Ɠ��l�ȉ��̂悤�ɂ��Ă��܂��B

  • ���[�J���̃o�b�N�A�b�v�ΏہF~/dir1��������~/dir2
  • �o�b�N�A�b�v��̃����[�g�z�X�g�Fxxx.backup.com
  • �����[�g�z�X�g�ڑ����̃A�J�E���g���Fbackupuser

��{�`�̂����炢�ƈꕔ��O

�@�܂���rsync�R�}���h�̊�{�`�������炢���Ă����܂��傤�B���̂悤�Ȍ`�ł����B

rsync [�I�v�V����] �R�s�[�� �R�s�[��

�@����̖{��ɓ���O�ɁA�����̑��I�Ɉȉ��́A���̊�{�`����O�ꂽ�\���ł��B��{�`�ɏ]���Ȃ�A�R�s�[�����u~/dir1�v�A�R�s�[�悪�u~/dir2�v�ƂȂ�͂��ł��ˁB�ł́A�uxxx.backup.com:dir/�v�͂ǂ����߂����̂ł��傤���B

$ rsync -av ~/dir1 ~/dir2 [email protected]:dir/


�@���ōl����悤�Ɏ肪��ɓ����Ă��܂����ł���΁A�u-n�v�I�v�V�����i--dry-run�j��t�����āA���ۂɎ�����Ă݂���������܂���ˁB��L�̗�ł̓f�B���N�g������������₷���̂ŁA�\�z���‚����������������Ǝv���܂����A�u~/dir1�v�u~/dir2�v���R�s�[���A�uxxx.backup.com:dir/�v���R�s�[��Ɖ��߂���܂��B�‚܂�A�R�s�[���ɂ͕����̃f�B���N�g�����w��ł���̂ł��B

�@�O��A�w�肵�������Ƀ}�b�`����t�@�C����f�B���N�g�����R�s�[�Ώۂ��珜�O����i�܂��͏��O���Ȃ��j���߂̃I�v�V�����Ƃ��āu--exclude�v�u--include�v�Ȃǂ��Љ�܂����B����ɁA���K�\���𗘗p����΂��X�}�[�g�Ȍ`�ŋL�q���邱�Ƃ��”\�ɂȂ�܂��B�ړI�ɑ΂��Ăǂ̕��@���̂邩�̓��[�U�[�ɂ��Ƃ��낪�傫���ł����A������g�ݍ��킹�Ďg���΁A�R�s�[���ɂ‚��Ă͂قڍŏ����̘J�͂Ŏw��ł���悤�ɂȂ�ł��傤�B

�C���N�������^���o�b�N�A�b�v����������u--link-dest�v�I�v�V����

�@���āA����̎���ł���u--link-dest�v�I�v�V�����ɂ‚��ĉ�����Ă����܂��傤�B

�@�o�b�N�A�b�v���쐬����ƁA���R���Ԃƃf�B�X�N�e�ʂ�����邱�ƂɂȂ�܂��B��ʓI�ɁA����1�񃍁[�J���̃f�[�^��rsync�Ń����[�g�z�X�g�Ƀt���o�b�N�A�b�v����Ƃ���΁A�o�b�N�A�b�v�t�@�C���̍폜���s��Ȃ�����A1�J����ɂ̓��[�J���̃f�[�^��30�{�߂��T�C�Y�������[�g�z�X�g�ɒ~�ς���邱�ƂɂȂ�܂��B����ɁA���̒��ɂ͂܂������X�V����Ă��Ȃ��f�[�^�����݂��Ă��邱�Ƃ�����������܂���B

�@���������w�i����A��ʓI�ȃo�b�N�A�b�v�̉^�p�ł́A�t���o�b�N�A�b�v��1�T�ԁA��������1�J����1����x�ŁA����ȊO�̓��͍����݂̂̃o�b�N�A�b�v�A������C���N�������^���o�b�N�A�b�v���s�����Ƃ������悤�ł��B

�@rsync�ŃC���N�������^���o�b�N�A�b�v���s�����߂̃I�v�V�������A�u--link-dest�v�ł��B--link-dest�I�v�V�������o�ꂷ��ȑO�́A�u-al�v�I�v�V�������‚���cp�R�}���h��rsync�𕹗p����`�ōs���Ă������������̂ł͂Ȃ��ł��傤���B

�@--link-dest�́A���̃I�v�V�����Ŏw�肵���f�B���N�g���ȉ��ƃR�s�[�����r���A�t�@�C���̏��L�ҁA�^�C���X�^���v�A�p�[�~�b�V�����Ȃǂ��ׂĂ���v����t�@�C���ł���΁A�w�肳�ꂽ�f�B���N�g�����̃t�@�C���̃n�[�h�����N���쐬���܂��i�t�@�C������v���Ȃ��ꍇ�́A�n�[�h�����N�ł͂Ȃ��R�s�[���s���܂��j�B�n�[�h�����N�𗘗p����ƁA�d������f�[�^�����݂���ꍇ�̓f�B�X�N�e�ʂ�������ɂ��݂܂��̂ŁA�����̃X�i�b�v�V���b�g�������悭�c�����Ƃ��”\�ƂȂ�܂��B

�@���ۂ̗���Ő������Ă݂܂��B�܂��Arsync�����s���čŏ��̃o�b�N�A�b�v���s���܂��B�����ł́A�m�F�̂���dir1�f�B���N�g���̉���1�ƒ_�~�[�t�@�C���iinode_test�j������Ă���o�b�N�A�b�v���s���Ă��܂��B

$ touch ./dir1/inode_test

$ rsync -av --delete ~/dir1/ ~/dir1_bak0

building file list ... done

created directory dir1_bak0

./

inode_test


�@���ɁA--link-dest�ɂ���dir1_backup/���w�肵�A�����o�b�N�A�b�v���s���܂��i�R�s�[���dir1_bak2�Ƃ��܂��j�B--link-dest�̗��p�œ��ɒ��ӂ��K�v�Ȃ̂́A--link-dest�Ŏw�肷��f�B���N�g���́A�R�s�[��f�B���N�g������̑��΃p�X�Ŏw������K�v������Ƃ������Ƃł��B����̃P�[�X�ł��ƁAinode_test�ɂ͉����ύX���������Ă��Ȃ����߁Ainode_test�̓n�[�h�����N�ƂȂ�͂��ł��B

$ rsync -av --delete --link-dest=../dir1_bak0 ~/dir1/ ~/dir1_bak1

building file list ... done

created directory dir1_bak1

./

$ ls -li dir1

23452843 -rw-rw-r-- 1 user group 0 xxxx-xx-xx xx:xx inode_test

$ ls -li dir1_bak0

23452847 -rw-rw-r-- 2 user group 0 xxxx-xx-xx xx:xx inode_test

$ ls -li dir1_bak1

23452847 -rw-rw-r-- 2 user group 0 xxxx-xx-xx xx:xx inode_test


�@dir1_bak��dir1_bak2�̒��ɓ����Ă���inode_test��inode�������ŁA�����N����2�A�‚܂�n�[�h�����N�ƂȂ��Ă��邱�Ƃ�������܂��B

�@����b�ɂȂ�܂������A�Ⴆ�Έȉ��̂悤�ȉ^�p�����邱�ƂŁA�f�B�X�N�̎g�p�ʂ�}���‚A�����̃X�i�b�v�V���b�g���Ƃ邱�Ƃ��”\�ƂȂ�܂��B

$ rsync -av --delete ~/dir1/ dir1_bak0

$ mv dir1_bak0 dir1_bak1 <- �O��̃A�[�J�C�u�t�@�C����ʖ��ۑ�

$ rsync -av --delete --link-dest=../dir1_bak1 dir1/ dir1_bak0 <- �n�[�h�����N��p���������o�b�N�A�b�v�i���ۂɂ͍����Ƃ������̓X�i�b�v�V���b�g�ł��j

$ mv dir1_bak1 dir1_bak2 <- �O��̃A�[�J�C�u�t�@�C����ʖ��ۑ�

$ mv dir1_bak0 dir1_bak1 <- �O��̃A�[�J�C�u�t�@�C����ʖ��ۑ�

$ rsync -av --delete --link-dest=../dir1_bak1 dir1/ dir1_bak0 <- �n�[�h�����N��p���������o�b�N�A�b�v


�@��L�̗�̓i���o�����O���蓮�ō�Ƃ��Ă��܂����A���ۂ̉^�p�ł́A�t�@�C������`date +%m%d`���‚���ȂǁAdate�R�}���h�����p���ē��t�⎞����������悤�ɂ��Ă����������悢�ł��傤�B���Ƃ́A�������V�F���X�N���v�g�Ƃ���cron�ň����Ԃ��ƂɎ��s������΁A����I�Ɏ����Ŏ��{����A������Ǘ����s���Ă���o�b�N�A�b�v���ł���悤�ɂȂ�܂��B�V�F���X�N���v�g�������ɓ������Ă�Tips�͕ʂ̋@��ɂ��炽�߂ďЉ�����Ǝv���܂��B

ssh+tar�Ƃ̈Ⴂ

�@�o�b�N�A�b�v�^�����Ƃ����ړI���ʂ����R�}���h�ɂ́Arsync�̂ق��ɂ��Assh��tar�̑g�ݍ��킹��A�Z�L�����e�B���l�����Ȃ��Ă悢�̂ł���΁Alftp���g�����@������i�wlftp�ōs����y�ȃo�b�N�A�b�v�x�Q���j�A�K�v�ɉ����đI�����邱�ƂɂȂ�܂��B�Ⴆ�΁Assh��tar�̑g�ݍ��킹�ł���Ύ��̂悤�ȃR�}���h��rsync�Ɠ��l�̏������”\�ł��B

$ tar zcvf - ~/dir1 | ssh [email protected] "tar zpxvf -"


�@�{�e��rsync�̉�������C���Ƃ��Ă��܂��̂ŁA��L�R�}���h�̏ڍׂ͉�����܂��񂪁A���[�J���}�V����~/dir1��tar�R�}���h�ŃA�[�J�C�u�A�p�C�v�i|�j�𗘗p���邱�ƂŁAssh�͂��̃f�[�^�X�g���[����W�����͂Ƃ��Ď󂯎��A�ڑ����������[�g�z�X�g���œW�J���Ă���Ɨ������Ă��������B���ʂƂ��āA�ursync -av ~/dir1 [email protected]:~/�v�Ǝ��s�����ꍇ�Ƃقړ������ʂ����҂ł��܂��B

�@1��݂̂̃o�b�N�A�b�v�ł���΁A��L�̕��@��rsync���ׂĂ�����قǓ]�����Ԃɍ��͂łȂ��ł��傤�B�������A�p�����ăo�b�N�A�b�v���s���ꍇ�ɂ́A���炩��rsync���g�������������悭�o�b�N�A�b�v���s���܂��B����́Arsync�ŗp�����Ă���A���S���Y�����A2��ڈȍ~�͍X�V�ȂǕύX�̂������t�@�C���݂̂�]������悤�ɂȂ��Ă��邩��ł��B�Ⴆ�΁A100G�o�C�g�̃f�[�^��rsync�Ńo�b�N�A�b�v�^��������ꍇ�A����ɂ����������Ԃ�2���ԁi120���j�������Ƃ��܂��B����̃o�b�N�A�b�v��A����10���̃f�[�^�i10G�o�C�g�j�ɉ��炩�̕ύX���������Ƃ���ƁA2��ڂ�rsync���s���ɂ����鎞�Ԃ́A12�����x�ɂȂ�Ɨ\�z�ł��܂��B����Assh��tar�̑g�ݍ��킹�ɂ��o�b�N�A�b�v�ł́A��{�I�ɏ���ƕς��Ȃ����ԂƂȂ�ł��傤�B

�@�������Arsync�ł̓R�s�[���ƃR�s�[��̃t�@�C�����X�g�̔�r�ɂ����Ԃ�������܂��̂ŁA��L�̗\�z�ɂ��̎��Ԃ��������čl����K�v������܂��B���ɁA�]����rsync�ł́A�܂��R�s�[���̃t�@�C�����X�g���`�F�b�N���Ă������߁A�R�s�[���̃T�C�Y��t�@�C�����������Ȃ�قǁA�]�����ԑS�̂ɐ�߂�t�@�C���`�F�b�N�̎��Ԃ͑����Ă��܂����B�����������΁A����قǍ����̃t�@�C�����Ȃ��ꍇ�ł��A�Ȃ��Ȃ��]�����͂��܂�Ȃ������킯�ł��B���ꂪrsync3�n�ł́A�����X�V�̍ہA�R�s�[���ƃR�s�[��̃t�@�C���`�F�b�N�𓯎��ɍs���悤�ɂȂ�A�p�t�H�[�}���X�̌���ɂ‚Ȃ����Ă��܂��B���ꂩ��rsync�𗘗p���悤�Ƃ�����́A�܂����g����rsync���o�[�W����3�n�ł��邩�m�F����邱�Ƃ������߂��܂��B

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR