Solved

Change ulimit to allow file transfer

Posted on 2013-06-18
16
2,252 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
Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

 
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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
php ssh2_scp_send 1 60
Linux hostname change 2 71
Why isnt it sending mail from my php but is from my server 10 44
Help on running oracle SQL script in linux 3 48
Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
It’s 2016. Password authentication should be dead — or at least close to dying. But, unfortunately, it has not traversed Quagga stage yet. Using password authentication is like laundering hotel guest linens with a washboard — it’s Passé.
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.

808 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