Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


Linux Coursework


For the Linux coursework, you must write a Linux script that will complete a set of tasks. This is worth 5% of this module and is open book. There should be sufficient time in the labs to complete the task, but if you are finding it difficult, then you may need to work on it in your spare time. Note that this is a coursework and will be different from the normal lab sessions in that it is expected that this will be your own work. The lab assistants will still be there to answer general questions but will not be able to help you with the script itself. You can still discuss the problem with your classmates, but in the end, the solution must be your own. REMEMBER you must save your script outside of the lab machine in each lab as your data may be lost if you don’t make a more permanent copy.


Task 1 (39 marks)

The task set for this year’s Linux coursework is to sort and process a collection of files. In the Unix section on Moodle in the Coursework folder, you will find a zip file called un_sorted_files.zip containing multiple files of many different types. You must first download this file and copy it across to your home directory in the Linux virtual machine. I would also advise creating a scripts directory as in Lab part 4.


Processing the Files

From here onwards, all tasks (in this Task 1 section) must be completed by your Linux Script ONLY. Unzip the file using the unzip command. You will need to look up the options for this command yourself using the techniques that you have learned in the labs. Your task is to write a script called process_files that will accept from the user as command line arguments a series of 3 strings representing file types. You must then create 4 directories – one for each file type and one for any files that do not match any of the file types - and separate the files into these new directories then return some information about these files to the user. For example if the user types

process_files jpg gif docx (./process_files.sh jpg gif docx)

Your script will sort the jpg/jpeg, gif and doc/docx files into their appropriate directories and the remaining files into a miscellaneous directory, before processing them. Note: All jpg/jpeg should be in the same jpg directory, all doc/docx in the same docx directory.


Output

Your script needs to output 5 different files. In each of the directories that you create, you should create a file that contains a list of all the files in that directory sorted by size orderAlso, in the main directory, your script should output a file that contains a label for each directory and the files in each directory sorted in reverse alphabetical order. This file should look something like this

…. These are the jpg files….

last_file_alphabetically.jpg

next_ last_file_alphabetically.jpg


…. All the gif files ….

last_file_alphabetically.gif

next_ last_file_alphabetically.gif


….. all the docx files …..

etc.


This is a difficult file to construct, so full marks will go in this section to replicating that file format. You might need to create several temporary files to complete the task. You will still get some marks for this section by creating a summary file of some description.

Your final scripting task is to provide a separate clean-up script that will remove the files and directories that you created from the virtual machine (make sure you have a backup copy of your files and scripts before testing it).


Describe Your Code and Personal Reflection

Using the comment keyword # in your script allows you to add a comment that the interpreter ignores. This lets you add a more human-readable dimension to your script. ie.

cp file123 directory20 # This line copies file123 into directory20

The text after # adds no functionality but explains what the command does. Comment your script to describe how it works. Finally, at the bottom of your script include comments, that is a reflective section (divided into 4 subsections) of a) some personal reflection on the working state of your script, b) how you approached the task, c) what you have learned and d) how this would affect how you would approach a similar task in the future.


Task 2 (11 marks)

a) Install and Configure Apache Web Server on Ubuntu. Follow all the steps in the link provided on Moodle (you may use different resources if you wish). Take a screenshot of each step. Make sure your name is visible on the screenshots. When you set up your domain name, make sure the html file includes a title message such as “Welcome to the Programming and System development Course!” Also make sure to include a message in the body that displays your name and student ID.

b) Enable SSH on your Ubuntu system. Verify that the installation was successful and SSH service is running. Again, make sure you take screenshots of each step to include in your file.


Saving and uploading your files

You must upload a zipped folder (your_name.zip, for e.g Mireilla_Bikanga_Ada.zip) containing 4 files on Moodle. The first file is your main script and personal reflection (process_files). The second file is the clean-up script (clean-up). The third file is a word document (your_name1.docx for e.g. Mireilla_Bikanga_Ada1.docx) containing screenshots of your outputs when the script is run (Task 1) – displays content of the directories and content of the files. The fourth file is a word document (your_name2.docx for e.g. Mireilla_Bikanga_Ada2.docx) containing all the screenshots for Task 2 a) and b). The screenshots must show your name (see example below).


Marking

The Coursework will be marked out of 50 with the distribution of marks as below