Lua �X�N���v�g�@�\

$Date: 2024/10/16 19:42:43 $


�T�v

�@���}�n���[�^�[�� Lua �X�N���v�g �i �Q�l�F lua.org �� �z�[���y�[�W �j �����s�ł��܂��BLua �X�N���v�g�Ƀ��}�n���[�^�[��p API �𖄂ߍ��ނ��ƂŁA���[�^�[�̏�Ԃɉ����āA���[�^�[�̐ݒ�ύX��A�N�V�������v���O���~���O���邱�Ƃ��”\�ɂȂ�܂��B�Ⴆ�΁A���̂悤�ȃX�N���v�g���쐬�ł��܂��B

�@�Ȃ��A���}�n���[�^�[��p API ��������̃y�[�W�Ō��J���Ă��܂��BAPI �͐����lj����Ă����\��ł��B�܂��A���}�n���[�^�[���������Ă��� Lua �̃o�[�W������ 5.1.4 �܂��� 5.1.5 �ł��B�ڍׂ� Lua �X�N���v�g�@�\�o�[�W�����̕ύX�������Q�Ƃ��Ă��������B

���}�n���������Ă��� Lua ����̎d�l�ɂ‚��ẮALua ����̕��@�����C�u�����֐����Q�Ƃ��Ă��������B�܂��ALua �`���[�g���A���̓v���O���~���O���S�Ҍ����̃`���[�g���A���ł��B

�I���W�i���� Lua ����̎d�l�ɂ‚��ẮALua 5.1 Reference Manual ���Q�Ƃ��Ă��������B

FUNC�{�^�������ڂ��ꂽ�@����g�p����ꍇ�́ADOWNLOAD�{�^����FUNC�{�^���ɓǂݑւ��Ă��������B


�Ή��@��ƃt�@�[���E�F�A���r�W����

���}�n���[�^�[�ł͈ȉ��̋@�킨��уt�@�[���E�F�A�ŁALua �X�N���v�g�@�\���T�|�[�g���Ă��܂��B

�@���t�@�[���E�F�A
YSL-V810 ���ׂẴ��r�W����
vRX�V���[�Y
RTX3510
RTX1300
RTX1220
RTX830
NVR510
NVR700W
RTX1210
RTX5000
RTX3500
FWX120
RTX810
NVR500
RTX1200 Rev.10.01.16�ȍ~
SRT100 Rev.10.00.52�ȍ~

Lua �X�N���v�g�@�\�o�[�W�����̕ύX����

Lua �X�N���v�g�@�\�o�[�W�����̕ύX�����ƁA�e�@��̃t�@�[���E�F�A���r�W�����Ƃ̑Δ�\�ł��B

_RT_LUA_VERSION �ύX���e �Ή��t�@�[���E�F�A
YSL-V810 vRX VMware ESXi�� vRX Amazon EC2�� vRX ������̃N���E�h�� RTX3510 RTX1300 RTX1220 RTX830 NVR510 NVR700W RTX1210 RTX5000 RTX3500 FWX120 RTX810 NVR500 RTX1200 SRT100
"1.0" ���������[�X Rev.1.03.01
�ȍ~
Rev.19.01.06
�ȍ~
Rev.19.00.01
�ȍ~
Rev.19.02.10
�ȍ~
Rev.23.01.01
�ȍ~
Rev.23.00.03
�ȍ~
Rev.15.04.01
�ȍ~
Rev.15.02.01
�ȍ~
Rev.15.01.02
�ȍ~
Rev.15.00.02
�ȍ~
Rev.14.01.05
�ȍ~
Rev.14.00.08
�ȍ~
Rev.14.00.08
�ȍ~
Rev.11.03.02
�ȍ~
Rev.11.01.04
�ȍ~
Rev.11.00.06
�ȍ~
Rev.10.01.16
�ȍ~
Rev.10.00.52
�ȍ~
"1.01" �ȉ��̋@�\��lj�����
  • BIGNUM ���g�p�ł���悤�ɂ���
  • �r�b�g���Z���C�u������lj�����
  • math ���C�u�����̈ꕔ�̊֐����g�p�ł���悤�ɂ���
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Rev.10.01.22
�ȍ~
Rev.10.00.56
�ȍ~
"1.02" �ȉ��̋@�\��lj�����
  • �n�[�h�E�F�A���C�u������lj�����
  • HTTP�N���C�A���g�@�\ ( rt.httprequest �֐� ) ��lj�����
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Rev.10.01.24
�ȍ~
��
"1.03" �ȉ��̋@�\��lj�����
  • ���K�\���I�u�W�F�N�g�𐶐����� string.regexp �֐���V�݂���
    �܂��A���K�\�����ߍ\���ɂ��Astring.regexp �֐����Ăяo����悤�ɂ���
  • �ȉ��̊e�֐��ŁA�p�^�[���Ƃ��Đ��K�\���I�u�W�F�N�g�𗘗p�ł���悤�ɂ���
    • string.find
    • string.match
    • string.gmatch
    • string.gsub
    • string.split
    • rt.syslogwatch
  • ��������p�^�[���ŕ������� string.split �֐���V�݂���
  • �����񂠂邢�͔z��̗v�f�����񂷂� each �֐���V�݂���
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Rev.11.00.13
�ȍ~
�� Rev.10.00.60
�ȍ~
"1.04"

�n�[�h�E�F�A���C�u�����ŁAUSB�L�[�{�[�h��USB�o�[�R�[�h���[�_�[�̏o�͂�ǂݎ���悤�ɂ���

�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Rev.11.00.16
�ȍ~
Rev.10.01.32
�ȍ~
��
"1.05" �ȉ��̕ύX������
  • �x�[�X�ƂȂ� Lua ���o�[�W���� 5.1.5 �ɂ���
  • rt.mail �֐��ŁA���[���{���̐擪�Ƀ��[�^�[�̏���}�����邩�ۂ����w��ł���悤�ɂ���
�� �� �� �� �� �� �� �� �� �� �� �� �� �� Rev.11.01.06
�ȍ~
Rev.11.00.20
�ȍ~
Rev.10.01.42
�ȍ~
Rev.10.00.61
�ȍ~
"1.06" LuaSocket�ɑΉ����� �� ��
��LuaSocket�ɂ͔�Ή�
��
��LuaSocket�ɂ͔�Ή�
�� �� �� �� �� �� �� �� �� �� �� Rev.11.01.09
�ȍ~
�� �� ��
"1.07" rt.command �֐��ŁA�R�}���h���s�̃��O���o�͂��邩�ۂ����w��ł���悤�ɂ��� �� �� �� �� �� �� �� �� �� �� Rev.14.01.11
�ȍ~
Rev.14.00.18
�ȍ~
Rev.14.00.18
�ȍ~
Rev.11.03.13
�ȍ~
Rev.11.01.25
�ȍ~
Rev.11.00.28
�ȍ~
Rev.10.01.65
�ȍ~
-
"1.08" �ȉ��̕ύX������
  • rt.mail �֐��ŁASMTPS ��p���ă��[���𑗐M���邩�ۂ����w��ł���悤�ɂ���
  • rt.httprequest �֐��ŁA�ȉ��ɑΉ�����
    • SSL �ɂ��ʐM���ł���悤�ɂ���
    • �F�ؕ�����Bearer �F�؂��w��ł���悤�ɂ���
- �� �� �� �� �� �� Rev.15.02.03
�ȍ~
Rev.15.01.09
�ȍ~
Rev.15.00.10
�ȍ~
Rev.14.01.26
�ȍ~
Rev.14.00.26
�ȍ~
Rev.14.00.26
�ȍ~
- - - - -

Lua �X�N���v�g�@�\�o�[�W�����̐V�����t�@�[���E�F�A�́A��{�I�ɈȑO�̃o�[�W�����ŃT�|�[�g����@�\���܂݂܂��B�ڍׂ� Lua ����̕��@�����C�u�����֐����Q�Ƃ��Ă��������B


�p��̒�`

Lua �^�X�N ...
Lua �X�N���v�g�����s���邽�߂Ƀ��[�^�[�� OS �ɗp�ӂ���Ă����p�̃^�X�N�ł��B lua �R�}���h�p�� 8 �ADOWNLOAD �{�^������̎��s�p�� 1 �ALua �R���p�C���p�� 1 �‚̌v10�� (*1) ���\�ߗp�ӂ���Ă��܂��B���ꂼ��̃^�X�N�͓Ɨ����Ă���̂� Lua �^�X�N�̍ő吔�܂œ������s���”\�ł��B

(*1) DOWNLOAD �{�^���񓋍ڋ@��A����сASRT100�ł́ADOWNLOAD�{�^������̎��s�p�̃^�X�N�������A9�‚̃^�X�N���p�ӂ���Ă��܂��B


�ڍ�

  1. Lua �X�N���v�g�̎��s���@�Ǝ��s�‹�

    �Ǘ����[�U�[�����Ń��[�^�[�Ƀ��O�C������ lua �R�}���h�����s������ADOWNLOAD �{�^�����������ƂŎw�肵�� Lua �X�N���v�g���J�n�����邱�Ƃ��ł��܂��Blua �R�}���h �� Lua �W���� lua �R�}���h�I�v�V�����̂����A�W������ �i stdin �j ���X�N���v�g�̓��͑ΏۂƂ��� -i / - �I�v�V������A�p�����[�^�Ȃ��̎��s�ɂ͑Ή����Ă��܂���BLua �X�N���v�g���J�n�������i�ɂ͎��̂��̂�����܂��B

    1. �V���A���R���\�[���A����сATELNET / SSH �N���C�A���g����� lua �R�}���h���s
    2. �����[�g�Z�b�g�A�b�v�@�\�𗘗p���� lua �R�}���h���s
    3. GUI �̃R�}���h���s��ʂ���� lua �R�}���h���s
    4. schedule at �R�}���h�𗘗p���� lua �R�}���h�̎������s �i �莞���s�⃋�[�^�[�N�����̎��s�Ȃ� �j
    5. DOWNLOAD �{�^���̒����� ( DOWNLOAD �{�^���񓋍ڋ@��A����сASRT100 ������ )

    lua �R�}���h�̎��s������L�ɋ����܂��B

    lua �R�}���h�́A�w�肵�� Lua �X�N���v�g���J�n������g���K�[�ɉ߂��Ȃ����߁ALua �X�N���v�g�̏I����҂����ɃR�}���h�v�����v�g���Ԃ�܂��B���̂��߁A����R���\�[���ォ��A���I�ɓ��R�}���h�����s���ĕ����� Lua �X�N���v�g�𗧂��グ�邱�Ƃ��”\�ł��B�������A�����ɑ��s�”\�� Lua �X�N���v�g�̏������ 8 �ł��BLua �X�N���v�g�@�\�ł� 1 �x�� lua �R�}���h���s�ɂ‚� 1 �‚� Lua �^�X�N�����蓖�Ă��邽�߁A�����ɑ��s���Ă���X�N���v�g�̐����� Lua �^�X�N���g�p����邱�ƂɂȂ�܂��B�Ȃ��A�i�� �R�j �̂悤�ɁA1 �x�� lua �R�}���h�ŕ����� Lua �X�N���v�g���w�肷��ꍇ�́A������ Lua �X�N���v�g�� 1 �‚� Lua �^�X�N���Ŏw�肵�����ԂɎ��s����܂��BLua �X�N���v�g�̑��s��Ԃ�ߋ��̎��s�󋵂Ȃǂ� show status lua �R�}���h����m�F�ł��܂��B�܂��A���s���� Lua �X�N���v�g�������I�����������Ƃ��́Aterminate lua �R�}���h ���g�p���܂��B

    ���s���� lua �R�}���h�� Lua �X�N���v�g�̒��ɕ��@�G���[���������ꍇ�́AINFO �^�C�v�̃G���[���b�Z�[�W�� SYSLOG �ɏo�͂���A�X�N���v�g�̎��s�����f����܂��B

    [SYSLOG��]
    
    2009/09/21 12:20:07: lua: mail.lua:26: 'rt.mail': 'text' field value of argument #1 is invalid.
    

    �܂��A�X�N���v�g�t�@�C���̏d���`�F�b�N���͍s���Ȃ����߁A�����ɓ���̃X�N���v�g�t�@�C�����w�肵�� lua �R�}���h�����s�����ꍇ�́A����̃X�N���v�g�t�@�C���������� Lua �^�X�N�ő��s���邱�ƂɂȂ�܂��B����~�X�������ꍇ�́Aterminate lua �R�}���h �ŕs�v�� Lua �^�X�N�������I�������Ă��������B

    DOWNLOAD �{�^���ɂ����s�ɂ‚��� ( DOWNLOAD �{�^���񓋍ڋ@��A����сASRT100 ������ )

    DOWNLOAD �{�^������̓X�N���v�g�t�@�C���� 1 �‚������s�����邱�Ƃ��ł��܂��Blua �R�}���h�̂悤�ȕ��G�ȑ���͍s���܂���B

    DOWNLOAD �{�^�����g�p���� Lua �X�N���v�g���J�n������ꍇ�� 1 �‚� Lua �^�X�N�������蓖�Ă��܂���B�������Alua �R�}���h �̎��s���Ɋ��蓖�Ă��� 8 �‚� Lua �^�X�N�Ƃ͕ʂ� DOWNLOAD �{�^����p�� Lua �^�X�N���p�ӂ��Ă��邽�߁Alua �R�}���h �p�� Lua �^�X�N�ɋ󂫂������Ă��ADOWNLOAD �{�^������ Lua �X�N���v�g���J�n�����邱�Ƃ��ł��܂��BDOWNLOAD �{�^���ɂ����s���@�ɂ‚��ĉ��L�ɏq�ׂ܂��B(��1)

    (��1) DOWNLOAD �����v���Ȃ��@��ł́ADOWNLOAD �����v�̓_���A�_�ł͂���܂���B
    (��2) FUNC�{�^�������ڂ���Ă���@��ł́Aoperation button function func�R�}���h���g�p���Ă��������B

    �풓�^�� Lua �X�N���v�g�ɂ‚���

    ��p�� Lua �^�X�N�Ŏ��s����邽�߁A�v���O�����ɏI�����Ȃ��풓�^�� Lua �X�N���v�g�𑖍s�����邱�Ƃ��”\�ł��BLua �^�X�N�� CPU ���\�[�X�̎g�p�ɐ�����݂��Ă��܂����A���s����X�N���v�g�̓��e�ɂ���Ă� CPU �g�p���� 100% �߂��オ�邱�Ƃ�����܂��B���������āA�X�N���v�g�v���O�����̕��ł� CPU �g�p���������Ȃ�Ȃ��悤�Ȕz�����K�v�ł� �i ���ӎ��� �Q�� �j�B


  2. �t�@�C�� I / O

    �X�N���v�g�t�@�C���̓��[�^�[�����̃t���b�V�� ROM �i RTFS �j�A�܂��́A�O���������ɕۑ��ł��܂��BRTFS �Ƃ́A���[�^�[�����̃t���b�V�� ROM ��ɍ\�z����Ă���t�@�C���V�X�e���̂��Ƃł��Blua �R�}���h�� operation button function download �R�}���h(��)�ŃX�N���v�g�t�@�C�����w�肷��ꍇ�́A���̊i�[�ꏊ���΃p�X�A�������́A�‹��ϐ� PWD ����̑��΃p�X�Ŏw�肵�܂��B��΃p�X�w��ł́A�O�����������w���t�@�C���p�X�ɂ͓��ڂ��Ă���O���������|�[�g�ɏ]�� "usb1:" �A "sd1:" �Ƃ����悤�ȃv���t�B�b�N�X��t���܂��B�O���������������v���t�B�b�N�X���L�q����Ă��Ȃ��ꍇ�́ARTFS �������t�@�C���p�X�Ɣ��ʂ���܂��B���΃p�X�w��ł́A�‹��ϐ� PWD �ɂ��A�O���������� RTFS �̂����ꂩ�ɔ��ʂ���܂��B�Ȃ��A�X�N���v�g�t�@�C���̈Í����ɂ͑Ή����Ă��܂���B
    (��) FUNC�{�^�������ڂ���Ă���@��ł́Aoperation button function func�R�}���h���g�p���Ă��������B

    �t�@�C���V�X�e���̑�����@�͋Z�p���� �i RTFS / �O���������̗��p �j ���Q�l�ɂ��Ă��������B

    �i�� �S�j �́APWD �� "/lua" ���ݒ肳��Ă���� �i�� �P�j �Ɠ����Ӗ��ɂȂ�A"usb1:/lua" ���ݒ肳��Ă���� �i�� �Q�j �Ɠ����Ӗ��ɂȂ�܂��B

    �܂��ALua �W���֐��ɂ���t�@�C������n�֐������l�Ƀ��[�^�[�����̃t���b�V�� ROM �A�܂��́A�O����������ΏۂƂ��邱�Ƃ��ł��A���ꂼ��̃f�o�C�X��Ńt�@�C���̐����Ɠǂݏ������s���܂��B�t�@�C������n�֐��̈����̃t�@�C�����ɂ���΃p�X�Ƒ��΃p�X���g�p�ł��܂��B�Ȃ��A�t���b�V�� ROM �ւ̕p�ɂȏ������݂̓f�o�C�X�̏��Ղ𑁂߂邱�ƂɂȂ�̂ŁA�J��Ԃ��t���b�V�� ROM �ւ̏������݂��s���悤�ȃX�N���v�g�̎��s�ɂ͒��ӂ��Ă������� �i ���ӎ��� �Q�� �j�B

    ��`�ς݃t�@�C���f�B�X�N���v�^�̕W������ �i stdin �j / �W���o�� �i stdout �j / �G���[�o�� �i stderr �j �ɂ͑Ή����Ă��Ȃ����߁A�������w�肷�邱�Ƃ͂ł��܂���B�������ALua �W���֐��� print( ) �֐��͎g�p�”\�ł��Bprint( ) �֐��̏o�͐�� lua �R�}���h�����s�������[�^�[�R���\�[���ɂȂ�܂����ALua �X�N���v�g�� schedule at �R�}���h�A�܂��́ADOWNLOAD �{�^�����g���K�[�ɂ��Ď��s���ꂽ�Ƃ��� print( ) �֐��ł͉����o�͂���܂���B


  3. Lua �̕W���֐�

    ���}�n���[�^�[���������Ă��� Lua �̃o�[�W������ 5.1.4 / 5.1.5 �ł��BLua 5.1.4 / 5.1.5 ���T�|�[�g���Ă���W���֐��̂����A���}�n���[�^�[�ł͎g�p�ł��Ȃ��֐���g�p���@�ɐ���������֐�������܂��B�����ɋ������Ă��Ȃ��֐��͕W���̎d�l�Ŏg�p�”\�ł��B

    �g�p�ł��Ȃ��֐�

    �g�p���@�ɐ���������֐�



  4. Lua �̃O���[�o���ϐ�

    Lua �W���ł� "_VERSION" �̂悤�ɗ\��ς݂̃O���[�o���ϐ�������A�����̓X�N���v�g���ł��̕ϐ������w�肷�邾���ŎQ�Ƃ��邱�Ƃ��ł��܂��B�����ł̓��[�^�[�p�ɐV���ɒlj����Ă���\��ς݂̃O���[�o���ϐ��ɂ‚��Đ������܂��B

    _RT_LUA_VERSION
    _RT_LUA_VERSION_NUM

    �x�[�X�ƂȂ� Lua �̃o�[�W���� �i _VERSION �j ���炳��ɁA���[�^�[�Ǝ��̃J�X�^�}�C�Y�����������@�\�̃o�[�W�������ݒ肳��Ă��܂��B���@�\�̏��������[�X���� _RT_LUA_VERSION �ɂ� "1.0" �Ƃ��������񂪐ݒ肳��Ă���A���@�\�̎d�l�g���⃋�[�^�[�p API �̒lj��ɔ����A�o�[�W�����ԍ����オ���Ă����܂��B_RT_LUA_VERSION_NUM �̓o�[�W�����𐔒l�ŕ\�������̂ŁA��ꌅ�Ń��W���[�ԍ��A���񌅂Ń}�C�i�[�ԍ��������O���̐����ɂȂ��Ă��܂��B"1.0" �̏ꍇ�A_RT_LUA_VERSION_NUM == 100 �ƂȂ�܂��BAPI ��V���̃��[�^�[�t�@�[���E�F�A�Ŏg��������K�v������ꍇ�ȂǂɁA���ϐ��Ő؂蕪���邱�Ƃ��ł��܂��B

    _RT_FIRM_REVISION

    ���[�^�[�t�@�[���E�F�A�̃��r�W���������������񂪐ݒ肳��Ă��܂��B


  5. ���[�^�[�̊‹��ϐ�

    �悭�g���A�h���X�╶����A�������́A���[�^�[���ƂɈقȂ�ݒ�l�Ȃǂ��Aset �R�}���h�Ŋ‹��ϐ��ɐݒ肵�Ă������Ƃ��ł��܂��B�ݒ肵���‹��ϐ��� Lua �W���֐��� os.getenv( ) �ŎQ�Ƃ��܂��BLua �X�N���v�g���e���[�^�[�ŋ��ʉ��������ꍇ�Ȃǂɕ֗��ł��B

    ���ɁALua �X�N���v�g�@�\�̓����ŎQ�Ƃ����‹��ϐ��ɂ‚��Đ������܂��B

    LUA_INIT�i�啶���w��j

    LUA_INIT �ɂ́ALua �̊J�n���Ɏ��O�Ɏ��s������X�N���v�g��ݒ肵�܂��BLUA_INIT ���ݒ肳��Ă���ꍇ�́Alua �R�}���h���Ŏw�肵���X�N���v�g�̊J�n�O�ɕK�����̃X�N���v�g�����s�����悤�ɂȂ�܂��B�ݒ�l�́A�擪�� "@" ������ꍇ�̓X�N���v�g�t�@�C�����w���p�X�ƔF������A����ȊO�̓X�N���v�g������ƔF������܂��B

    LUA_INIT �̃f�t�H���g�l�͐ݒ肳��Ă��܂���B

    LUA_PATH�i�啶���w��j

    LUA_PATH �ɂ́ALua �W���֐��� require( ) �� Lua �̃��W���[�������[�h���邽�߂Ɏg�p����p�X��ݒ肵�܂��BLua �ł̓��W���[�����̒u���L���Ƃ��� "?" ���g���܂����A���[�^�[�R���\�[���� "?" ����͂���ƃw���v���\������Ă��܂����߁A"?" ����͂���O�ɃG�X�P�[�v�V�[�P���X�� "\" ����͂��Ă��������B

    LUA_PATH ���ݒ肳��Ă��Ȃ��ꍇ�́A" ./?.lua; " ���f�t�H���g�̃p�X�Ƃ��Ďg�p����܂��B

    �i���j ���@�\�ł́Arequire( ) �� C �̃��W���[�������[�h���邱�Ƃ͂ł��܂���B���������āALUA_CPATH �͎g�p����܂���B

    PWD�i�啶���w��j

    PWD �ɂ́A�X�N���v�g�t�@�C�����w�����΃p�X�̊�_�ƂȂ�p�X���΃p�X�Őݒ肵�܂��Blua �R�}���h���ŃX�N���v�g�t�@�C���𑊑΃p�X�Ŏw�肷��ꍇ�A���� PWD ����_�ɂȂ�܂��B������ " / " �͂Ȃ��Ă��\���܂���B
    PWD ���ݒ肳��Ă��Ȃ��ꍇ�́A" / " �i RTFS �̃��[�g �j ���f�t�H���g�̃p�X�Ƃ��Ďg�p����܂��B


  6. ���}�n���[�^�[��p API

    ���}�n���[�^�[��p API ���g�p���邱�ƂŁA���[�^�[�̑�����v���O���~���O���邱�Ƃ��ł��܂��BAPI �͐����lj����Ă����\��ł��B

    Lua �������}�n���[�^�[��p API �̌��J�y�[�W


  7. Lua �R���p�C�� �i Luac �j

    luac �R�}���h�����s���邱�Ƃ� Lua �X�N���v�g���R���p�C�����ăo�C�g�R�[�h �i ���Ԍ��� �j �𐶐��ł��܂��B�W���� luac �R�}���h�I�v�V�����̂����A�W������ �i stdin �j ����͑ΏۂƂ��� - �I�v�V�����ɂ͑Ή����Ă��܂���BLua �R���p�C���͓����� 1 �‚����N�����邱�Ƃ��ł��܂��Blua �R�}���h�Ƃ͈Ⴂ�A�R���p�C�����I������܂ŃR�}���h�v�����v�g�͕Ԃ�Ȃ����߁A���s���� "CTRL + C" �ŋ����I�����邱�Ƃ��ł��܂��B�Ȃ��Aluac �R�}���h�� shcedule at �R�}���h�ɂ͎w��ł��܂���B

    �܂��A�������ꂽ�o�C�g�R�[�h�t�@�C���� lua �R�}���h���̎��s�Ώۃt�@�C���Ɏw�肵�Ď��s���邱�Ƃ��ł��܂��B�����ł� Lua �X�N���v�g�̎��s���ׂ����������ꍇ��A�ۑ����Ă���X�N���v�g�t�@�C�����ꌩ���������ł͂��̓��e���킩��Ȃ��悤�ɂ������ꍇ�ɗL���ȕ��@�ł��B�Ȃ��A���s�Ώۂ̃��[�^�[�܂��͓���̋@���Ő��������o�C�g�R�[�h���������s�”\�ł���A���s�Ώۂ̃��[�^�[�Ƃ͈قȂ�@��� Lua ���C���X�g�[������ PC ���Ő��������o�C�g�R�[�h�͎��s�ł��܂���B



���ӎ���


�R�}���h


�ݒ��

  1. ���[�^�[�̍ċN�����Ƀ��u�[�g�������[���ő��M����

    [ config �ɕK�v�Ȑݒ� ]
    schedule at 1 startup * lua /lua/restart.lua
    

    ���[�^�[�̋N������ Lua �X�N���v�g�����s����X�P�W���[����ݒ肵�܂��B���̑��A��{�I�Ȍo�H�ݒ�Ȃǂ͊��ɐݒ肳��Ă�����̂Ƃ��܂��B

    [ Lua �X�N���v�g ]
    -- ### restart.lua ###
    
    ------------------------------------------------------------
    -- ���[�^�[�R�}���h�����s���A�o�͌��ʂ𐮌`���ĕԂ��֐�   --
    ------------------------------------------------------------
    function exec_command(cmd)
    	local rtn, str
    	local text
    
    	rtn, str = rt.command(cmd)
    	if (rtn) and (str) then
    		text = string.format("\"%s\"�̎��s����\r\n\r\n%s\r\n", cmd, str)
    	else
    		text = string.format("\"%s\"�̎��s���s\r\n\r\n", cmd)
    	end
    
    	return text
    end
    
    ------------------------------------------------------------
    -- ���C������                                             --
    ------------------------------------------------------------
    mail_table = {
    	smtp_address = "smtp.xxxx.co.jp",            -- �K�X�ύX
    	from = "[email protected]",                -- �K�X�ύX
    	to = "[email protected]",                  -- �K�X�ύX
    	subject = "���[�^�[���ċN�����܂���"
    }
    
    -- �����W
    mail_table.text = exec_command("show status boot all")
    mail_table.text = mail_table.text .. exec_command("show log")
    
    -- ���[�����M
    rt.mail(mail_table)
    

    ��L�� restart.lua �Ƃ����e�L�X�g�t�@�C�����쐬���ARTFS �� /lua �z���ɕۑ����Ă����܂��B�ۑ����@�����������Q�Ƃ��Ă��������B

    [ �X�N���v�g�̐��� ]
    • /lua/restart.lua
      "show status boot all" �� "show log" �̎��s���ʂ��Ǘ��҂Ƀ��[���ő��M����X�N���v�g�ł��B���̃X�N���v�g���N�����Ɏ��s������悤�ɃX�P�W���[���̐ݒ�����Ă����΁A���[�^�[���ċN���������Ƃ������ɒm�邱�Ƃ��ł��A��͂ɕK�v�ȏ����ꏏ�ɓ����܂��B


  2. WAN �̒ʐM�󋵂ɉ����� QoS ��ݒ肵�A���Ԋu�ŊĎ��󋵂����[���ő��M����

    [ �l�b�g���[�N�\�� ]
    • �{��-�����x�ЊԂ�IPsec-VPN�ڑ�
    • �����x�Ђ̓v���o�C�_�֒[���^�ڑ�
    • �p�P�b�g���X���������ԑт��� QoS ��������
    lbg[N\
    [ �����x�Ѓ��[�^�[�� config �� ]
    set GATEWAY=172.16.10.254
    set LUA_INIT=@/lua/init.lua
    set PWD=/lua/tokyo
    
    ip route default gateway 172.16.10.254
    ip route 192.168.1.0/24 gateway tunnel 1
    ip lan1 address 192.168.2.1/24
    ip lan2 address 172.16.10.1/24
    ip lan2 nat descriptor 1
    
    tunnel select 1
     ipsec tunnel 101
      ipsec sa policy 101 1 esp aes-cbc sha-hmac anti-replay-check=off
      ipsec ike always-on 1 on
      ipsec ike pre-shared-key 1 text PASSWORD
      ipsec ike remote address 1 172.16.2.1
     tunnel enable 1
    ipsec auto refresh on
    
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 primary
    nat descriptor masquerade static 1 1 192.168.2.1 udp 500
    nat descriptor masquerade static 1 2 192.168.2.1 esp
    
    [ config �̐��� ]
    set GATEWAY=172.16.10.254
    set LUA_INIT=@/lua/init.lua
    set PWD=/lua/tokyo
    

    �X�N���v�g�Ŏg�p����‹��ϐ��̐ݒ�ł��B

    [ Lua �X�N���v�g ]
    -- ### init.lua ###
    
    rt.command("clear log")
    rt.syslog("info", "[�X�N���v�g�J�n]")
    

    ��L�� init.lua �Ƃ����e�L�X�g�t�@�C�����쐬���ARTFS �� /lua �z���ɕۑ����Ă����܂��B�ۑ����@�����������Q�Ƃ��Ă��������B

    -- ### ping.lua ###
    
    adr = os.getenv("GATEWAY")
    
    ------------------------------------------------------------
    -- n �� PING �����s���A���X����Ԃ��֐�                   --
    ------------------------------------------------------------
    function exec_ping(n)
    	local ping_cmd
    	local rtn, str
    	local loss
    
    	ping_cmd = string.format("ping -c %s -w 0.5 %s", n, adr)
    	rtn, str = rt.command(ping_cmd)
    	if (not rtn) or (not str) then
    		-- �G���[
    		return -1
    	end
    
    	loss = string.match(str, "(%d+)%.%d+%%")     -- �p�P�b�g���X���iNNN.N%�j�̐������𒊏o
    	if (not loss) then
    		loss = -1
    	else
    		loss = tonumber(loss)
    	end
    
    	return loss
    end
    
    ------------------------------------------------------------
    -- IPsec �p�P�b�g��D�悷�邽�߂� QoS ��ݒ�/��������֐� --
    ------------------------------------------------------------
    function set_qos(set)
    	local no = ""
    
    	if (not set) then
    		no = "no "
    	end
    
    	rt.command(no .. "queue class filter 1 4 ip * * udp 500")
    	rt.command(no .. "queue class filter 2 4 ip * * esp")
    	rt.command(no .. "queue lan2 class filter list 1 2")
    	rt.command(no .. "speed lan2 80m")           -- ��葬�x���l�������l��
    	rt.command(no .. "queue lan2 type priority")
    	rt.command("save")
    end
    
    ------------------------------------------------------------
    -- ���C������                                             --
    ------------------------------------------------------------
    local rtn, str
    
    cnt = 1
    qos = false
    show_cmd = "show status qos all"
    mail_table = {
    	smtp_address = "smtp.xxxx.co.jp",            -- �K�X�ύX
    	from = "[email protected]",             -- �K�X�ύX
    	to = "[email protected]",               -- �K�X�ύX
    	subject = "Ping Status",
    	text = ""
    }
    
    while (1) do
    	set_qos_flag = false
    
    	-- 10���ԋx�~
    	rt.sleep(600)
    
    	text = os.date("%Y�N%m��%d�� %H��%M��%S�b�F PING ���s����\r\n")
    
    	loss = exec_ping(arg[1])
    
    	if (loss < 0) then
    		text = text .. "PING ���s�G���["
    	else
    		text = text .. string.format("����:%s �p�P�b�g���X��:%d%%", adr, loss)
    
    		if (loss >= 10) then
    			if (not qos) then
    				set_qos(true)
    				set_qos_flag = true
    				qos = true
    				text = text .. "\r\nQoS ��ݒ肵�܂���"
    			end
    		elseif (loss == 0) then
    			if (qos) then
    				set_qos(false)
    				qos = false
    				text = text .. "\r\nQoS ���������܂���"
    			end
    		end
    	end
    
    	-- SYSLOG �֋L�^
    	rt.syslog("info", text)
    	text = text .. "\r\n"
    
    	-- 6 �񕪂��܂Ƃ߂ă��[���ʒm
    	mail_table.text = mail_table.text .. text .. "\r\n"
    	if (cnt < 6) then
    		cnt = cnt + 1
    	else
    		-- QoS �̐ݒ肪����ꍇ����"show status qos"�̏o�͌��ʂ����[���{���ɒlj�
    		-- �������AQoS�ݒ蒼��͈Ӗ����Ȃ��̂ŏ���
    		if (qos) and (not set_qos_flag) then
    			rtn, str = rt.command(show_cmd)
    			if (rtn) and (str) then
    				text = string.format("# %s\r\n%s", show_cmd, str)
    				mail_table.text = mail_table.text .. text
    			end
    		end
    
    		-- ���[�����M
    		if (not rt.mail(mail_table)) then
    			rt.syslog("info", "Failed rt.mail by Lua")
    		end
    
    		-- ���[�����M���I������烊�Z�b�g
    		cnt = 1
    		mail_table.text = ""
    	end
    end
    

    ��L�� ping.lua �Ƃ����e�L�X�g�t�@�C�����쐬���ARTFS �� /lua/tokyo �z���ɕۑ����Ă����܂��B�ۑ����@�����������Q�Ƃ��Ă��������B

    [ �X�N���v�g�̐��� ]
    • /lua/init.lua
      LUA_INIT �ɐݒ肷�� �������p�X�N���v�g�ł��BSYSLOG �����������܂�

    • /lua/tokyo/ping.lua
      ���C���̃X�N���v�g�ł��B�X�N���v�g�̓��e�͎��̒ʂ�ł��B�������[�v����X�N���v�g�Ȃ̂ŁArt.sleep( ) �������Ă��邱�Ƃɒ��ӂ��Ă��������B
      • 10 �������� WAN ���Q�[�g�E�F�C�A�h���X�֔C�ӂ̉� PING �𑗐M����B
      • PING �̃p�P�b�g���X���� 10 % �ȏ�̂Ƃ��AIPsec �p�P�b�g��D�悷�邽�߂� QoS ��ݒ肷��B
      • PING �̃p�P�b�g���X���� 1 % �����̂Ƃ��AQoS �̐ݒ����������B
      • ����� PING �̎��s���ʂ� SYSLOG �ɋL�^����B
      • ���񐔕��� PING �̎��s���ʂ��܂Ƃ߂ĊǗ��҂փ��[���ő��M����B
      • ���[�����M���� QoS �̐ݒ肪�������Ƃ��́A"show status qos all" �̏o�͌��ʂ����[���{���ɒlj�����B

    [ �X�N���v�g�̎��s�� ]
    # lua ping.lua 30
    

    �����x�Ѓ��[�^�[�ɃV���A���� TELNET �o�R�Ń��O�C�����A���� PING �̑��M�񐔂� 30 ��Ƃ���Ȃ�A�R�}���h���͉�ʂŏ�L�̂悤�ɓ��͂��܂��BPWD �� "/lua/tokyo" ���ݒ肳��Ă��邽�߁A�t�@�C���p�X�� "/lua/tokyo/ping.lua" �Ɖ��߂���܂��Bping.lua �͖������[�v������̂ŁA�r���ŏI�����������ꍇ�� terminate lua �R�}���h���g���܂��B



SYSLOG ���b�Z�[�W

�{�@�\�ɂ����ďo�͂���� SYSLOG ���b�Z�[�W���ȉ��Ɏ����܂��B���ۂɏo�͂���郁�b�Z�[�W�ɂ� "[LUA]" �Ƃ����v���t�B�b�N�X���t������܂��B���}�n���[�^�[��p API �ŏo�͂���� SYSLOG ���b�Z�[�W�ɂ‚��ẮALua �������}�n���[�^�[��p API�̃y�[�W���Q�Ƃ��Ă��������B

���x�� �o�̓��b�Z�[�W �Ӗ�
INFO Lua script function was enabled. Lua �X�N���v�g�@�\��L���ɂ����B
Lua script function was disabled. Lua �X�N���v�g�@�\�𖳌������B
DEBUG created Lua Task(N) Lua �^�X�N�ԍ� N �� Lua �^�X�N�𐶐������B
terminated Lua Task(N) Lua �^�X�N�ԍ� N �� Lua �^�X�N�������I�������B
closed Lua Task(N): success Lua �^�X�N�ԍ� N �� Lua �^�X�N���I�������B���s�����X�N���v�g�͐���ɏI�������B
closed Lua Task(N): failure Lua �^�X�N�ԍ� N �� Lua �^�X�N���I�������B���s�����X�N���v�g�̓G���[�I�������B

�Q�l���