{"id":12554,"date":"2023-04-06T23:16:10","date_gmt":"2023-04-06T23:16:10","guid":{"rendered":"https:\/\/www.goodacademic.com\/blog\/questions\/project-2-there-is-2-options-for-the-project-you-can-select-only-one-to-do-each-is-worth-100-points-option-1-is-more-command-driven-and-option-2-is-with-docker-option-1-is-in-blue-and-option-2-is\/"},"modified":"2023-04-06T23:16:10","modified_gmt":"2023-04-06T23:16:10","slug":"project-2-there-is-2-options-for-the-project-you-can-select-only-one-to-do-each-is-worth-100-points-option-1-is-more-command-driven-and-option-2-is-with-docker-option-1-is-in-blue-and-option-2-is","status":"publish","type":"questions","link":"https:\/\/www.goodacademic.com\/blog\/questions\/project-2-there-is-2-options-for-the-project-you-can-select-only-one-to-do-each-is-worth-100-points-option-1-is-more-command-driven-and-option-2-is-with-docker-option-1-is-in-blue-and-option-2-is\/","title":{"rendered":"Project 2 There is 2 options for the project. You can select only one to do. Each is worth 100 points. Option 1 is more command driven and option 2 is with docker. Option 1 is in blue and option 2 is in green."},"content":{"rendered":"<p>Project 2<\/p>\n<div>There is 2 options for the project. You can select only one to do. Each is worth 100 points. Option 1 is more command driven and option 2 is with docker. option 1 is in blue and option 2 is in green.\n<\/div>\n<div>Option 1:\n<\/div>\n<div>&nbsp;project2hints.txt\n<\/div>\n<div>Create user accounts Sally, John and Patty. Give them each a password of test.\n<\/div>\n<div>Create a general and accounting group.\n<\/div>\n<div>Add Sally and John to the accounting group.\n<\/div>\n<div>Add Sally, John, and Patty to the general group.\n<\/div>\n<div>Who are you currently logged in as?\n<\/div>\n<div>Go to your home folder.\n<\/div>\n<div>Create the folder testfolder1 and a folder inside called testfolder2\n<\/div>\n<div>Change your current folder to testfolder1\n<\/div>\n<div>Create a new file called sallyfile inside testfolder1. Type sallyfile as the contents, and then save and close it.\n<\/div>\n<div>Create a new file called testfile2 inside testfolder1. Type testfile2 as the contents, and then save and close it.\n<\/div>\n<div>Change your current folder to testfolder2.\n<\/div>\n<div>Create a new file called proga.sh inside testfolder2. It should have this as its contents:\n<\/div>\n<div>#\/bin\/sh\n<\/div>\n<div>echo &#8220;hello world&#8221;\n<\/div>\n<div>Change the owner of testfolder1 and its contents, so sally is the owner.\n<\/div>\n<div>Change the group of testfolder1 and its contents to accounting.\n<\/div>\n<div>Change the permissions of sallyfile, so the group and other levels cannot do anything to it .\n<\/div>\n<div>Change the permissions of testfile2, so the group can read\/write to it and other can read it.\n<\/div>\n<div>Change the permissions of testfolder2, so the group has execute permission, and other has no permissions.\n<\/div>\n<div>Change the permissions of proga.sh, so the group can execute the program.\n<\/div>\n<div>Backup testfolder2 with the tar command and use gzip compression. Name the archive testfolder2.tgz.\n<\/div>\n<div>Backup up testfolder1 with the tar command. Name the archive simple_1.tar\n<\/div>\n<div>Please do these commands so as to collect all of your work for grading.\n<\/div>\n<div>echo company data &gt; ~\/yourname\n<\/div>\n<div>ls \u2013Ral \/testfolder1 &gt;&gt; ~\/yourname\n<\/div>\n<div>echo \/etc\/passwd &gt;&gt; ~\/yourname\n<\/div>\n<div>cat \/etc\/passwd &gt;&gt; ~\/yourname\n<\/div>\n<div>echo \/etc\/group &gt;&gt; ~\/yourname\n<\/div>\n<div>cat \/etc\/group &gt;&gt;~\/yourname\n<\/div>\n<div>history &gt;&gt; ~\/yourname\n<\/div>\n<div>Grading for option 1\n<\/div>\n<div>As a deliverable, please submit a pdf or word doc with your command history and output from step # 21. I need to see the complete command history as well as a see the complete directory listing of your testfolder1 and its subcontents. Screenshots of your command history and directory listing of testfolder1 complete contents are acceptable but not required.\n<\/div>\n<div>Each step is worth 5 points (20 graded steps altogether). For each step that is wrong, 5 points is subtracted.\n<\/div>\n<div>OPTION 2 &#8211; SET UP A DOCKER CONTAINER\n<\/div>\n<div>For this option we would set up a docker container with the following parameters\n<\/div>\n<div>The docker container should run Linux\n<\/div>\n<div>It must have the following packages installed:\n<\/div>\n<div>Python and pip\n<\/div>\n<div>Install the ssh package paramiko for Python\n<\/div>\n<div>an editor like vim, nano, and\/or emacs\n<\/div>\n<div>SSH\n<\/div>\n<div>curl and wget\n<\/div>\n<div>cron\n<\/div>\n<div>Your docker container should connect to a volume\n<\/div>\n<div>Create a hello world shell script hello.sh that is executable. All it does is the following:\n<\/div>\n<div>print out the &#8220;Hello world&#8221; and output to the volume you created in file called hello_datehere.txt. For instance, your docker volume could be called \/usr\/share\/dockervolume and the file would be named \/usr\/share\/dockervolume\/hello_20230327\n<\/div>\n<div>Create dockerfile that builds this image for the container so matches all the above parameters. The hello world script hello.sh should be copied into your image using the dockerfile and the dockerfile should include all the packages specified above.\n<\/div>\n<div>Bonus (not required): make your container run on the hello.sh script every day and output to your dockervolume\n<\/div>\n<div>Grading for option 2\n<\/div>\n<div>50 points: Provide the dockerfile\n<\/div>\n<div>10 points: Provide the hello.sh\n<\/div>\n<div>10 points: Screenshot of your working container\n<\/div>\n<div>30 points: write up explaining your whole process\n<\/div>\n<div>When uploading your deliverable please provide the contents as a pdf or word doc.\n<\/div>\n<div>OPTION 3 &#8211; WEB SCRAPING\n<\/div>\n<div>For this option we will put our scripting knowledge to test. You will scrape a website and collect the data points into a csv.\n<\/div>\n<div>Here are the parameters of this project:\n<\/div>\n<div>Try to scrape this fake ecommerce page of cars: https:\/\/mrlabsllc.com\/tuxcars\/.\n<\/div>\n<div>Your scraper should collect at least 3 data points such as name of product, price of product and product number or rating\n<\/div>\n<div>Only one page of store data is necessary but it should be around 20 items though. No need to have your scraper page through the website inventory.\n<\/div>\n<div>It&#8217;s ok if your script is being blocked by the website, you can just download HTML source of page instead.\n<\/div>\n<div>If you are having trouble because the site is blocking you, I can help you on how to download the source of a website so you can move forward with your scraping project.\n<\/div>\n<div>Setting up a webdriver with selenium or a similar tool is not required for this project.\n<\/div>\n<div>Your script should output the data points into a csv\n<\/div>\n<div>Suggested programs\/tools to use for your scripting:\n<\/div>\n<div>cut\n<\/div>\n<div>sed\n<\/div>\n<div>grep\n<\/div>\n<div>regular expressions\n<\/div>\n<div>curl\/wget\n<\/div>\n<div>awk\n<\/div>\n<div>variables\n<\/div>\n<div>if statements, while loops, for loops, and other control structures\n<\/div>\n<div>Here is a basic flow for your webscraping\n<\/div>\n<div>Have your script download 1 page of store items. If you cannot have your script do this. It&#8217;s ok to download it manually the HTML source of a website.\n<\/div>\n<div>Parse the outputted HTML source from the data to recognize the 3 data points you identified for each store item such as price, name of product and item id or rating\n<\/div>\n<div>Output a csv of the parsed data. A csv is a comma separated spreadsheet\n<\/div>\n<div>Grading for option 3\n<\/div>\n<div>80 points: script that parses the HTML source of a website&#8217;s store inventory to generate a csv of its product data with at least 3 data points.\n<\/div>\n<div>20 points: write up explaining your process<\/div>\n<div>\n<\/div>\n<div>\n<\/div>\n<div>\n<\/div>\n<div>\n<\/div>\n<div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Project 2 There is 2 options for the project. You can select only one to do. Each is worth 100 points. Option 1 is more command driven and option 2 is with docker. option 1 is in blue and option 2 is in green. Option 1: &nbsp;project2hints.txt Create user accounts Sally, John and Patty. Give [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"disciplines":[706],"paper_types":[],"tagged":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/questions\/12554"}],"collection":[{"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/questions"}],"about":[{"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/types\/questions"}],"author":[{"embeddable":true,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/comments?post=12554"}],"version-history":[{"count":0,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/questions\/12554\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/media?parent=12554"}],"wp:term":[{"taxonomy":"disciplines","embeddable":true,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/disciplines?post=12554"},{"taxonomy":"paper_types","embeddable":true,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/paper_types?post=12554"},{"taxonomy":"tagged","embeddable":true,"href":"https:\/\/www.goodacademic.com\/blog\/wp-json\/wp\/v2\/tagged?post=12554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}