服务器下载MERRA2数据脚本并改名

1.创建 .netrc 文件

nano ~/.netrc

2.在 .netrc 文件中添加以下内容(替换 <username> 和 <password> 为您NASA Earthdata 账号信息)

machine urs.earthdata.nasa.gov
login <username>
password <password>

3.设置文件权限(为了确保 .netrc 文件的安全性,设置其权限为仅当前用户可读写

chmod 600 ~/.netrc

4.验证是否成功

cat ~/.netrc
machine urs.earthdata.nasa.gov
login my_username
password my_password

5.脚本

#!/bin/bash

# 设置下载目录
DOWNLOAD_DIR="./downloads"
mkdir -p "$DOWNLOAD_DIR"

# 输入文件(包含URL列表)
INPUT_FILE="monthly.txt"

# 检查.netrc文件是否存在
if [ ! -f ~/.netrc ]; then
    echo "错误:~/.netrc 文件不存在。请按以下步骤操作:"
    echo "1. 创建 ~/.netrc 文件并添加:"
    echo "   machine urs.earthdata.nasa.gov"
    echo "   login <你的用户名>"
    echo "   password <你的密码>"
    echo "2. 运行命令:chmod 600 ~/.netrc"
    exit 1
fi

# 遍历URL列表并下载
while IFS= read -r url; do
    # 从URL中提取六位日期(如198001)
    date_part=$(echo "$url" | grep -oE '[0-9]{6}\.nc4' | head -1 | sed 's/\.nc4//')

    if [ -z "$date_part" ]; then
        echo "警告:无法从URL提取日期,跳过:$url"
        continue
    fi

    # 目标文件名(如198001.nc)
    new_name="${date_part}.nc"

    # 使用wget下载(自动认证)
    echo "下载:$url -> $new_name"
    wget \
        --show-progress \
        --load-cookies ~/.urs_cookies \
        --save-cookies ~/.urs_cookies \
        --keep-session-cookies \
        --auth-no-challenge=on \
        --netrc \
        -O "${DOWNLOAD_DIR}/${new_name}" \
        "$url"

    # 检查下载结果
    if [ $? -eq 0 ]; then
        echo "成功:${new_name}"
    else
        echo "失败:${url}"
    fi
done < "$INPUT_FILE"

echo "所有文件下载完成!"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值