Solved

Change ulimit to allow file transfer

Posted on 2013-06-18
16
2,299 Views
Last Modified: 2013-06-19
Hello,

I'm trying to transfer a 23GB file back to my AIX box.  AIX Version 5.3.  I receive an error message which terminates the transfer.  "A file cannot be larger than the value set by ulimit".
I am logged in as root.  Can I change the value to allow the transfer?

Thank you.
0
Comment
Question by:cbones
  • 8
  • 7
16 Comments
 
LVL 23

Expert Comment

by:nemws1
ID: 39257581
What are your current limits?  Run as root:

ulimit -a

Open in new window

0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257608
Hi,

first, run

lssec -f /etc/security/limits -s root -a fsize_hard

If you see "root fsize_hard=-1" then you can set your file size limit to "unlimited" by just issuing

ulimit -f unlimited

If the above "lssec" command returns no value or a value other than -1 issue

chsec -f /etc/security/limits -s root -a fsize_hard=-1

then use "ulimit -f unlimited" to set the limit to "unlimited".

Please be aware that if the target filesystem is "jfs" (as opposed to "jfs2") it must be enabled for large files, otherwise there is a hard 2 GB limit.

Check with

lsfs -q /mount/point

if "VFS" is "jfs" then "bf: true" must be displayed.

Please note that "bf" is a creation time option which cannot be set afterwards.
0
 

Author Comment

by:cbones
ID: 39257637
# ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         131072
stack(kbytes)        32768
memory(kbytes)       unlimited
coredump(blocks)     2097151
nofiles(descriptors) 2000
#

file errors out around 1GB with the error.

What can I check?

Thank you.
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257649
Did you check the jfs type and "bf" (see my comment)?

What do you see with

quota

?
0
 

Author Comment

by:cbones
ID: 39257665
VFS          Size               Options
  jfs2         348127232    rw


 (lv size: 348127232, fs size: 348127232, block size: 4096, sparse files: yes, inline log: no, inli
ne log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no)
#
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257670
Are you sure that it's "root" who performs the transfer?

Which transfer tool are you using? Which is the exact command?
0
 

Author Comment

by:cbones
ID: 39257684
I am using ftp to do the transfer.  

When I type whoami it returns root.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257711
So you're doing this on AIX as root:

cd target_dir
ftp sourcehost
cd source_dir
get filename

right? If so, and if ulimit -f returns "unlimited" as you wrote, I can only assume a filesystem issue (corruption?), because everything should work just fine.

Is there something suspicious in

errpt | more

?
0
 

Author Comment

by:cbones
ID: 39257730
I am trying to ftp a file to the server.  I am doing an ftp to the aix box.  Changing to the directory I want to place the file.  Then doing a put to transfer the file to the box.

Nothing in the errpt that's  unusual.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257739
So you're doing this on the source machine

cd source_dir
ftp aix_server
(log in as root) <-- This is important!
cd target_dir
put filename

Right?
0
 

Author Comment

by:cbones
ID: 39257767
That's correct.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257777
Please make sure that the ulimit on AIX is indeed permanently set to unlimited by issuing

lssec -f /etc/security/limits -s root -a fsize

right after login and before issuing any ulimit command.

If it's still "-1" I must admit that I'm out of ideas.
0
 

Author Comment

by:cbones
ID: 39257788
Here is the output

# lssec -f /etc/security/limits -s root -a fsize
root fsize=
#
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39257802
Then:

lssec -f /etc/security/limits -s default -a fsize

If this gives an empty (or low) value too  - are you setting root's fsize limit in the .profile?

Please remember that profiles are not executed under FTP!
0
 

Author Comment

by:cbones
ID: 39257830
It did return an empty value.   I am setting this from the command line.  What do you mean in the profile?

# lssec -f /etc/security/limits -s default -a fsize
default fsize=
#
0
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 500 total points
ID: 39257845
Changing ulimit from the command line doesn't make the setting permanent - it will last just for your current shell session.
So if you were trying to get the file from the source sever this would be alright, but since you're tring to put it won't work.

Make the setting permanent:

chsec -f /etc/security/limits -s root -a fsize=-1

Now you can retry putting the file.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
wifi not working on Raspberry Pi 3? 2 82
How to update  and reset admin password for Linux 5 65
bash file 10 49
Internal CA server 6 48
Java performance on Solaris - Managing CPUs There are various resource controls in operating system which directly/indirectly influence the performance of application. one of the most important resource controls is "CPU".   In a multithreaded…
The purpose of this article is to demonstrate how we can use conditional statements using Python.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question