452 Error writing file: A file cannot be larger than the value set by ulimit.

AIX FTP上传文件大小限制
本文介绍了一个在Windows下使用FTP向AIX系统传输文件时遇到的问题:尽管目标目录有足够的空间,但仍然无法完成文件传输。问题在于AIX系统的文件大小被ulimit设置所限制。文中提供了解决方案,即通过编辑/etc/security/limits文件来调整默认的文件大小限制。

windows下FTP到AIX 出错 。。。。。

 

200 PORT command successful.
150 Opening data connection for 10gr2.cpio.gz.
> Netout :软件造成连接终止
452 Error writing file: A file cannot be larger than the value set by ulimit.
ftp: 发送 1073790975 字节,用时 96.94Seconds 11077.09Kbytes/sec.

       可是/home 有20G的空间 传输的文件才1.2G

 

 

解决办法:

修改你的上传文件限制参数:

vi /etc/security/limits

default:
        fsize = -1

<think> 我们正在讨论如何将最大打开文件描述符数量设置为大于60000(例如使用`ulimit -n 60000`)。注意,通常系统默认限制可能较低,因此需要修改系统级配置和用户级配置。 步骤通常包括: 1. 修改用户级别的限制(通过修改用户配置文件,如~/.bashrc、~/.profile等) 2. 修改系统级别的限制(通过修改/etc/security/limits.conf文件) 3. 修改系统全局限制(通过修改/etc/sysctl.conf文件,调整fs.file-max) 4. 检查并确保在systemd系统上修改服务限制(如果应用程序作为服务运行) 但是,有时候即使修改了这些配置,使用`ulimit -n`设置的值仍然不能超过硬限制(hard limit)。而且,在Linux中,普通用户通过`ulimit -n`设置的值不能超过系统全局限制(/proc/sys/fs/file-max)和用户会话限制。 另外,在较新的Linux发行版中使用systemd,还需要修改/etc/systemd/system.conf和/etc/systemd/user.conf以及具体服务的service文件。 下面详细说明步骤: 步骤1:修改用户会话限制(临时生效) 直接在终端执行:`ulimit -n 60000`,但这只是临时生效,退出终端或会话后失效。 步骤2:永久修改用户限制 编辑/etc/security/limits.conf文件,添加如下行: ``` * soft nofile 60000 * hard nofile 60000 ``` 或者替换`*`为特定用户名。 步骤3:修改系统全局文件描述符限制 编辑/etc/sysctl.conf文件,添加: ``` fs.file-max = 200000 ``` 这里的值应该大于等于我们想要设置的文件描述符数量。然后执行`sysctl -p`使配置生效。 步骤4:对于使用systemd的系统(如Ubuntu 16.04以后,CentOS 7以后) 修改/etc/systemd/system.conf和/etc/systemd/user.conf(如果需要),去掉以下行的注释并修改值: ``` DefaultLimitNOFILE=60000 ``` 然后执行: ``` systemctl daemon-reload ``` 并重启系统。 注意:如果应用程序是作为systemd服务运行的,则还需要在相应的service文件中设置LimitNOFILE。例如: ``` [Service] ... LimitNOFILE=60000 ... ``` 步骤5:重新登录或重启 修改limits.conf后需要重新登录用户,修改systemd配置后需要重启服务或系统。 但是,有时候即使这样设置了,在终端中使用`ulimit -n 60000`仍然可能失败,因为硬限制(hard limit)可能不允许设置这么高。我们可以先查看当前的硬限制:`ulimit -Hn`。如果硬限制不够,我们需要先提高硬限制(通过limits.conf设置)。 另外,在某些系统中,还有一个限制是/etc/security/limits.d/目录下的配置文件可能会覆盖主配置文件,需要检查。 最后,注意:设置过高的文件描述符数量可能会消耗大量系统资源,需根据系统实际情况调整。 现在,为用户生成相关问题: </think> ### 如何将最大打开文件描述符数量设置为超过60000 在Linux系统中,要永久设置超过60000的文件描述符限制(如`ulimit -n 60000`),需要修改系统级配置文件和用户级配置文件。以下是详细步骤: --- ### 一、修改系统全局限制 1. **编辑`/etc/sysctl.conf`文件** 增加系统级文件描述符上限(建议设置为目标值的1.5倍): ```bash sudo vim /etc/sysctl.conf ``` 添加配置: ``` fs.file-max = 100000 ``` 保存后刷新配置: ```bash sudo sysctl -p ``` 2. **验证全局限制** ```bash cat /proc/sys/fs/file-max # 应显示100000 ``` --- ### 二、修改用户进程限制 1. **编辑`/etc/security/limits.conf`** ```bash sudo vim /etc/security/limits.conf ``` 在文件末尾添加: ``` * soft nofile 60000 * hard nofile 60000 ``` > **说明**: > - `*` 表示对所有用户生效 > - `soft` 是警告阈值,`hard` 是实际上限 > - `nofile` 表示文件描述符数量 2. **针对特定用户(可选)** 替换`*`为用户名: ``` john soft nofile 60000 john hard nofile 60000 ``` --- ### 三、systemd系统额外配置(适用于Ubuntu 18.04+/CentOS 7+) 1. **修改`/etc/systemd/system.conf`** ```bash sudo vim /etc/systemd/system.conf ``` 取消注释并修改: ``` DefaultLimitNOFILE=60000 ``` 2. **应用配置并重启服务** ```bash sudo systemctl daemon-reload sudo reboot # 重启生效 ``` --- ### 四、验证设置 1. **重新登录后检查** ```bash ulimit -Hn # 应显示60000 (hard limit) ulimit -Sn # 应显示60000 (soft limit) ``` 2. **系统级验证** ```bash cat /proc/sys/fs/file-nr | awk '{print $1}' # 查看当前已用描述符 ``` --- **关键注意事项**: 1. 必须**重启系统**或**重新登录用户会话**使配置生效 2. 超过65535的值需确保内核版本≥4.2(旧内核有上限限制) 3. 数据库/Web服务器等应用可能需要额外修改其服务配置文件[^1] --- ### 临时设置方法(重启失效) ```bash ulimit -n 60000 # 设置当前会话 sudo sysctl -w fs.file-max=100000 # 临时修改全局限制 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值