ssh ile dosya kopyalama

dosya göndermek için ;

  • ssh uzaktaki_makina cat <yerel_dosya – “>” uzak_dosya
  • cat yerel_dosya | ssh uzaktaki_makina cat “>” uzak_dosya

dosya almak için ;

  • ssh uzaktaki_makina “cat /home/dosya.tar.gz” > dosya.tar.gz
  • ssh uzaktaki_makina cat “<” uzak_dosya >yerel_dosya

dosyaları karşılaştırmak için ;

# Uzaktaki makinanın işlemcisini kullanarak:

  • ssh uzaktaki_makina cat uzak_dosya | diff – yerel_dosya

# Yerel makinanın işlemcisini kullanarak:

  • ssh uzaktaki_makina cat <yerel_dosya “|” diff – uzak_dosya

ilerleme durumunu gösterebilen rcp nin geliştirilmiş hali scp komutuyla kopyalama işlemi;

# bulunduğun klasördeki sh dosyalarını uzaktaki makinadaki home klasörüne kopyalamak için:

  • scp *.sh uzaktaki_makina:

# pdf dosyalarını uzaktaki makinada farklı bir klasöre kopyalamak için:

  • scp *.pdf uzaktaki_makina:/home/cemd/altklasor

# uzaktaki makinadaki sh dosyalarını yerel makinaya almak için:

  • scp uzaktaki_makina:*.sh .

# scp, sftp, ssh ve sshd aynı pakettedir. winscp de windows tabanlı makinelerde kullanılabilir.
[ Gürhan’a teşekkürler]

klasor boyutlari

Kullanıcıların posta kutusunun boyutunu listelemek için (Maildir) kullanılabilir;

du -h /home/kullanicilar | awk ‘$1 ~/M/ {sub(/M/, “Mb”); print $0}’ | awk ‘$2 ~/.Maildir$/{print $0}’|sort -n

20Mb den büyük dosyaları listelemek için

find / -type f -size +20000k -exec ls -lh {} ; | awk ‘{ print $9 “: ” $5 }’

Klasörde dosya isimlerindeki boşlukları ve büyük harfleri düzeltmek için;

#!/bin/bash
for f in *; do
file=$(echo $f | tr A-Z a-z | tr ‘ ‘ _)
[ ! -f $file ] && mv “$f” $file
done

LMS API

IBM Learning Management Systems ve IBM Workplace Collaborative Learning uygulamalarında çok sayıda kullanıcıyı LMS API lerini kullanarak kaydetmek için aşağıdaki kod kullanılabilir.

Kaydedilecek kullanıcı adlarını ve kaydedilecek kursların kodlarını text dosyasından okuyup lms deki kurs atamasını hayata geçiren koddur.

Diğer LMS API lerini kullanmak için ibm in sitesinden apidoc incelenip geliştirilebilir.

import java.io.*;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.*;
/**
* Kullanıcıyı bir kursa kaydeder...
* örneği : userid:00000000002f9200CTEN
* @author Cem DOGAN Aralik 2008
*
*/
public class Register_to_courseWCL {
public static String[] users;
public static int total=0;
public static void main(String[] args) {

try {
File file = new File("kullanicilar_kurslar.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader buff = new BufferedReader(isr);
String inputLine = "";

ArrayList<String> list = new ArrayList();
while ((inputLine = buff.readLine()) != null) {
list.add(inputLine);
}
buff.close();

users = new String[list.size()];
File roster_log=new File("kursatama.log");
FileOutputStream fos=new FileOutputStream(roster_log,true);
OutputStreamWriter out=new OutputStreamWriter(fos);
BufferedWriter buf=new BufferedWriter(out);
try{
for (int i = 0; i < list.size(); i++) {
users[i] = list.get(i);
String satir[] = users[i].split(":");

kaydet(satir[0],satir[1]);
out.write(satir[0]+":"+satir[1]+" tamamr");
}
}catch(Exception e){
e.printStackTrace();
}
buf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void kaydet(String kullaniciadi, String kurskodu) throws Exception{
URL url;
try {
url = new URL("http://IBMLMSadresiniz/lms-lmm/services/LMSRosterAPI");
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setUsername("admin");
call.setPassword("sifresi");
String NS_XSD = "http://www.w3.org/2001/XMLSchema";
QName QNAME_TYPE_STRING = new QName(NS_XSD, "string");
call.addParameter("user_id", QNAME_TYPE_STRING, ParameterMode.IN);
call.addParameter("offering_id", QNAME_TYPE_STRING,
ParameterMode.IN);
String[] params = { kullaniciadi, kurskodu };
call.setReturnType(QNAME_TYPE_STRING);
call.setOperationName(new QName("LMSEnrollmentAPI",
"enrollCourseForUser"));
call.invoke(params);

} catch (Exception e) {
throw new Exception("Bir hata oluştu");
}
}
}