• 总结AWS使用要点


    最近做毕业设计,要用AWS跑代码,以前只用过一次,这次踩了很多坑,记录一下。。

    AWS命令行管理S3 bucket

    AWS官方文档:

    http://docs.amazonaws.cn/cli/latest/userguide/using-s3-commands.html

    管理存储桶
      创建桶;
    $ aws s3 mb s3://bucket-name
      删除桶:
    $ aws s3 rb s3://bucket-name
    删除非空桶:
    $ aws s3 rb s3://bucket-name --force
    列出存储桶
    $ aws s3 ls
    列出存储桶中所有的对象和文件夹
    $ aws s3 ls s3://bucket-name
    列出桶中 bucket-name/MyFolder 中的对象
    $ aws s3 ls s3://bucket-name/MyFolder
    管理对象
    命令包括 aws s3 cp、aws s3 ls、aws s3 mv、aws s3 rm 和 sync。cp、ls、mv 和 rm 命令的用法与它们在 Unix 中的对应命令相同。

    // 将当前目录里的 MyFile.txt文件拷贝到 s3://my-bucket/MyFolder
    $ aws s3 cp MyFile.txt s3://my-bucket/MyFolder/

    // 将s3://my-bucket/MyFolder所有 .jpg 的文件移到 ./MyDirectory
    $ aws s3 mv s3://my-bucket/MyFolder ./MyDirectory --exclude '*' --include '*.jpg' --recursive

    如果是文件夹,最后一定加 --recursive

    // 列出 my-bucket的所有内容
    $ aws s3 ls s3://my-bucket

    // 列出my-bucket中MyFolder的所有内容
    $ aws s3 ls s3://my-bucket/MyFolder

    // 删除 s3://my-bucket/MyFolder/MyFile.txt
    $ aws s3 rm s3://my-bucket/MyFolder/MyFile.txt

    // 删除 s3://my-bucket/MyFolder 和它的所有内容
    $ aws s3 rm s3://my-bucket/MyFolder --recursive
    当 
    --recursive
     选项与 
    cp

    mv
     或 
    rm
     一起用于目录/文件夹时,命令会遍历目录树,包括所有子目录
    sync命令

    sync 命令的形式如下。可能的源-目标组合有:

    本地文件系统到 Amazon S3

    Amazon S3 到本地文件系统

    Amazon S3 到 Amazon S3

    $ aws s3 sync <source> <target> [--options]

    例如:本地文件系统到S3中:

    $ aws s3 sync 本地目录/. s3://my-bucket/目录

    docker 和 AWS主机之间互相拷贝文件

    docker cp :用于容器与主机之间的数据拷贝。
    1、从主机往容器中拷贝
    eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。

    docker cp /www/runoob 96f7f14e99ab:/www/
    1
    2、将容器中文件拷往主机
    eg:将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。

    docker cp 96f7f14e99ab:/www /tmp/
    1
    eg:将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。

    docker cp /www/runoob 96f7f14e99ab:/www

    AWS Linux挂载新的EBS

    1.在AWS控制台创建一个EBS卷,创建的EBS卷必须和将要挂载的EC2处于同一个可用区.并且挂载时EC2必须处于关机状态

    2.两EBS卷连接至EC2,注意:连接时会提示 :注意:较新的 Linux 内核可能会在内部将您的设备重命名为 /dev/xvdf through /dev/xvdp,即使在此处输入的(并且在详细信息中显示的)设备名为 /dev/sdf through /dev/sdp。(这里的重命名就是你在linux中需要挂载的名称)

    3.启动ec2并连接,fdisk -l命令:

    [ec2-user@ip-172-31-14-69 ~]$ sudo fdisk -l
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.


    Disk /dev/xvda: 8589 MB, 8589934592 bytes, 16777216 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt




    #         Start          End    Size  Type            Name
     1         4096     16777182      8G  Linux filesyste Linux
    128         2048         4095      1M  BIOS boot parti BIOS Boot Partition


    Disk /dev/xvdf: 536.9 GB, 536870912000 bytes, 1048576000 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes




    Disk /dev/mapper/docker-202:1-394826-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 65536 bytes / 65536 bytes
    此处必须不是root用户必须加上sudo  不然会没有显示

    可以看到Disk .dev/xydf就是我们之前新建的EBS

    4.命令:df -T

    [ec2-user@ip-172-31-14-69 ~]$ df -T
    Filesystem Type 1K-blocks Used Available Use% Mounted on
    devtmpfs devtmpfs 2014044 96 2013948 1% /dev
    tmpfs tmpfs 2024932 0 2024932 0% /dev/shm
    /dev/xvda1 ext4 8123812 1081736 6941828 14% /

    当前系统文件格式为:ext4


    5.命令:sudo mkfs.ext4 /dev/xvdf

    [ec2-user@ip-172-31-14-69 ~]$ sudo mkfs.ext4 /dev/xvdf
    mke2fs 1.42.12 (29-Aug-2014)
    Creating filesystem with 131072000 4k blocks and 32768000 inodes
    Filesystem UUID: f12daa29-2a4e-4810-bf4a-a6a814b9a775
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done


    格式化

    6.创建挂载文件夹,并挂载

    sudo mkdir kingdee
    sudo mount /dev/xvdf  /kingdee


    7.查看挂载结果

    [ec2-user@ip-172-31-14-69 /]$ df -h
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 2.0G 96K 2.0G 1% /dev
    tmpfs 2.0G 0 2.0G 0% /dev/shm
    /dev/xvda1 7.8G 1.1G 6.7G 14% /
    /dev/xvdf 493G 70M 467G 1% /kingdee


    但是,重启后会发现挂载的磁盘消失了,所以这里需要实现开机自动挂载磁盘

    7.开机自动挂载磁盘需要修改一个文件,先看看文件:vi /etc/fstab

    [root@ip-172-31-15-83 kingdee]# vi /etc/fstab
    #
    /dev/xvdf /kingdee ext4 defaults 1 1
    LABEL=/ / ext4 defaults,noatime 1 1
    tmpfs /dev/shm tmpfs defaults 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    sysfs /sys sysfs defaults 0 0
    proc /proc proc defaults 0 0

    可以很明显的看到文件有6列。
    第1列是设备名或者卷标

    第2列是挂载点(也就是挂载目录)

    第3列是所要挂载设备的文件系统或者文件系统类型

    第4列是挂载选项,通常使用defaults就可以

    第5列设置是否使用dump备份,置0为不备份,置1,2为备份,但2的备份重要性比1小

    第6列设置是否开机的时候使用fsck检验所挂载的磁盘,置0为不检验,置1,2为检验,但置2盘比置1的盘晚检验。

    第一行就是将

    /dev/xvdf 挂载到了/kingdee目录下


    如何该文件设置有错,则会导致机器启动失败,所以需要测试配置是否有问题

    使用命令: mount  -a

    8.重启即可

    另:这里解决了一个docker容器挂载本地目录的的问题.我在手动mount挂载磁盘后,将这个目录挂载到docker容器中发现挂载的目录是在手动mount挂载磁盘之前的目录,并不是mount挂载磁盘后的目录,设置磁盘开机自动挂载即可解决该问题

    加:

    新遇到的情况:


    [root@ip-10-0-100-142 kingdee]# fdisk -l
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

    Disk /dev/xvda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt
    # Start End Size Type Name
    1 4096 41943006 20G Linux filesyste Linux
    128 2048 4095 1M BIOS boot parti BIOS Boot Partition
    Disk /dev/xvdf: 536.9 GB, 536870912000 bytes, 1048576000 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x9fd3c93c
    Device Boot Start End Blocks Id System
    /dev/xvdf1 63 209712509 104856223+ 83 Linux
    Disk /dev/mapper/docker-202:1-394683-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 65536 bytes / 65536 bytes

    这里安装之前的说法 挂载语句应该是: mount  /dev/xvdf  /kingdee

    但是这里报错:

    [root@ip-10-0-100-142 kingdee]# mount /dev/xvdf /kingdee
    mount: /dev/xvdf is write-protected, mounting read-only
    mount: wrong fs type, bad option, bad superblock on /dev/xvdf,
    missing codepage or helper program, or other error

    In some cases useful info is found in syslog - try
    dmesg | tail or so.

    正确命令应是: mount  /dev/xvdf1 /kingdee

    如何排查使用 SSH 连接我的 EC2 Linux 实例时遇到的问题?

     https://amazonaws-china.com/cn/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/?icmpid=support_rt_kc_articles

  • 相关阅读:
    Java 编程基础
    LING 实战
    C# 3.0\3.5 新特性
    EF Code First 入门
    C# 4.0 新特性
    JavaScript学习(二)
    JavaScript学习(一)
    csdn的blog后台程序的导航菜单的实现
    HashTable的遍历
    开通啦
  • 原文地址:https://www.cnblogs.com/guohaoyu110/p/10748741.html
Copyright © 2020-2023  润新知