Kanrisuru

tail

Output the last part of a file in ruby.
linux manual

Basic Usage

host = Kanrisuru::Remote::Host.new(host: '127.0.1.1', username: 'ubuntu', keys: ['~/.ssh/id_rsa'])

result = host.tail('/etc/crontab', lines: 5)
result.success?
true

result.to_a
[
  [0] "17 *\t* * *\troot    cd / && run-parts --report /etc/cron.hourly",
  [1] "25 6\t* * *\troot\ttest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )",
  [2] "47 6\t* * 7\troot\ttest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )",
  [3] "52 6\t1 * *\troot\ttest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )",
  [4] "#"
]

Parameters

Field Type Description
path string
Required file path to get the contents from.
bytes integer
output the last K bytes; or use +K to output starting with byte K of each file
lines integer
Output the last K lines, instead of the last 10; or use +K to output starting with line K
mode string
Can be either append or write options. Determines how content is saved into a file.
new_file string
The name of the newfile to write the content to

Result

Either returns an array of the last K lines / bytes from the file, or a nil value if a file is being written to.

Exit Status

Code Description
0 Success
1 Failure

Tested On

  • Ubuntu, Debian, Centos, Fedora, Redhat, OpenSuse, SLES